public void TrackWidgetPosition(Gtk.Widget refWidget, bool topMenu) { IDesignArea area = wrapper.GetDesignArea(); Gdk.Rectangle rect = area.GetCoordinates(refWidget); if (topMenu) { area.MoveWidget(this, rect.X, rect.Bottom); } else { area.MoveWidget(this, rect.Right, rect.Top); } GLib.Timeout.Add(50, new GLib.TimeoutHandler(RepositionSubmenu)); }