diff options
author | Marco Pesenti Gritti <mpg@redhat.com> | 2007-08-08 01:07:00 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <mpg@redhat.com> | 2007-08-08 01:07:00 (GMT) |
commit | 0b355dcbb96a46e496401444377e92577ffd1939 (patch) | |
tree | 89f9cdd9e187661b115bb678ce2e7b5ec003a899 /lib/ui/sugar-menu.c | |
parent | 2485e15030d2ae8b61272dbc16081e5e4f9c3e40 (diff) |
First go at support of focusable widgets inside the palette.
Not enabled yet because focus confuses our deactivation logic
but it seem to work otherwise.
Diffstat (limited to 'lib/ui/sugar-menu.c')
-rw-r--r-- | lib/ui/sugar-menu.c | 43 |
1 files changed, 5 insertions, 38 deletions
diff --git a/lib/ui/sugar-menu.c b/lib/ui/sugar-menu.c index 6ed482e..d822867 100644 --- a/lib/ui/sugar-menu.c +++ b/lib/ui/sugar-menu.c @@ -28,54 +28,21 @@ static void sugar_menu_init (SugarMenu *menu); G_DEFINE_TYPE(SugarMenu, sugar_menu, GTK_TYPE_MENU) void -sugar_menu_popup(SugarMenu *menu, - int x, - int y) +sugar_menu_set_active(SugarMenu *menu, gboolean active) { - GtkWidget *window; - - window = GTK_MENU(menu)->toplevel; - g_return_if_fail(window != NULL); - - GTK_MENU_SHELL(menu)->active = TRUE; - - gtk_widget_show(GTK_WIDGET(menu)); - - gtk_window_move(GTK_WINDOW(window), x, y); - gtk_widget_show(window); + GTK_MENU_SHELL(menu)->active = active; } void -sugar_menu_popdown(SugarMenu *menu) -{ - GtkWidget *window; - - window = GTK_MENU(menu)->toplevel; - g_return_if_fail(window != NULL); - - GTK_MENU_SHELL(menu)->active = FALSE; - - gtk_widget_hide(GTK_WIDGET(menu)); - gtk_widget_hide(window); -} - -static void -sugar_menu_size_request (GtkWidget *widget, - GtkRequisition *requisition) +sugar_menu_embed(SugarMenu *menu, GtkContainer *parent) { - SugarMenu *menu = SUGAR_MENU(widget); - - (* GTK_WIDGET_CLASS (sugar_menu_parent_class)->size_request) (widget, requisition); - - requisition->width = MAX(requisition->width, menu->min_width); + GTK_MENU(menu)->toplevel = gtk_widget_get_toplevel(GTK_WIDGET(parent)); + gtk_widget_reparent(GTK_WIDGET(menu), GTK_WIDGET(parent)); } static void sugar_menu_class_init(SugarMenuClass *menu_class) { - GtkWidgetClass *widget_class = GTK_WIDGET_CLASS(menu_class); - - widget_class->size_request = sugar_menu_size_request; } static void |