ui/gtk/menu.c

changeset 115
102fc0b8fe3e
parent 75
efe2f65bea17
child 140
c03c338a7dcf
--- a/ui/gtk/menu.c	Sun Jan 24 22:20:47 2016 +0100
+++ b/ui/gtk/menu.c	Mon Jan 25 16:36:31 2016 +0100
@@ -485,18 +485,23 @@
     return FALSE;
 }
 
-void ui_contextmenu(UiObject *obj) {
+UIMENU ui_contextmenu(UiObject *obj) {
     UiContainer *ct = uic_get_current_container(obj);
-    ui_contextmenu_w(obj, ct->current);
+    return ui_contextmenu_w(obj, ct->current);
 }
 
-void ui_contextmenu_w(UiObject *obj, UIWIDGET widget) {
+UIMENU ui_contextmenu_w(UiObject *obj, UIWIDGET widget) {
     UiContainer *ct = uic_get_current_container(obj);
     
     GtkMenu *menu = GTK_MENU(gtk_menu_new());
     g_signal_connect(widget, "button-press-event", (GCallback) ui_button_press_event, menu);
     
     ct->menu = menu;
+    return menu;
+}
+
+void ui_contextmenu_popup(UIMENU menu) {
+    gtk_menu_popup(menu, NULL, NULL, 0, 0, 0, gtk_get_current_event_time());
 }
 
 void ui_widget_menuitem(UiObject *obj, char *label, ui_callback f, void *userdata) {
@@ -521,6 +526,7 @@
     
     // create menuitem
     GtkWidget *widget = gtk_menu_item_new_with_mnemonic(label);
+    gtk_widget_show(widget);
     
     if(f) {
         UiEventData *event = malloc(sizeof(UiEventData));
@@ -570,6 +576,7 @@
     
     // create menuitem
     GtkWidget *widget = gtk_image_menu_item_new_from_stock(stockid, obj->ctx->accel_group);
+    gtk_widget_show(widget);
     
     if(f) {
         UiEventData *event = malloc(sizeof(UiEventData));

mercurial