Notebook CreateNewWindow(Notebook source, Widget page, int x, int y) { Helpers.ExternalWindow window; EventBox box; Notebook notebook; window = new Helpers.ExternalWindow (); if (page == timeline) { window.Title = Catalog.GetString ("Timeline"); } else if (page == dashboardhpaned) { window.Title = Catalog.GetString ("Analysis dashboard"); } else if (page == playspositionviewer1) { window.Title = Catalog.GetString ("Zonal tags viewer"); } notebook = new Notebook (); notebook.ShowTabs = false; notebook.CanFocus = false; //notebook.Group = source.Group; window.Add (notebook); window.SetDefaultSize (page.Allocation.Width, page.Allocation.Height); window.Move (x, y); window.ShowAll (); activeWindows.Add (window); window.DeleteEvent += (o, args) => { Widget pa = notebook.CurrentPageWidget; activeWindows.Remove (window); notebook.Remove (pa); Visible = true; source.AppendPage (pa, null); notebookHelper.UpdateTabs (); notebook.Destroy (); }; /* If we are remove the last visible page, hide the widget to * free the empty space for the rest of widgets */ int visiblePages = 0; for (int i = 0; i < source.NPages; i++) { if (source.GetNthPage (i).Visible) { visiblePages++; } } if (visiblePages == 1) { Visible = false; } return notebook; }