void UpdateWindowPos() { if (ContainerWindow != null) { if (!repositionRequested && width != 0 && height != 0) { repositionRequested = true; Application.Invoke(delegate { var pos = frame.GetScreenCoordinates(new Gdk.Point(x, y)); DesktopService.PlaceWindow(ContainerWindow, pos.X, pos.Y, width, height); repositionRequested = false; }); } } else if (Parent != null) { Parent.QueueResize(); } }