ui/gtk/menu.c

changeset 148
4e0b38bbd6c4
parent 140
c03c338a7dcf
child 164
1d912f78fd1d
--- a/ui/gtk/menu.c	Sun Nov 19 09:00:16 2017 +0100
+++ b/ui/gtk/menu.c	Sun Nov 19 09:38:23 2017 +0100
@@ -457,13 +457,13 @@
     event->callback(&evt, event->userdata);    
 }
 
-int ui_checkitem_get(UiInteger *i) {
+int64_t ui_checkitem_get(UiInteger *i) {
     int state = gtk_check_menu_item_get_active(i->obj);
     i->value = state;
     return state;
 }
 
-void ui_checkitem_set(UiInteger *i, int value) {
+void ui_checkitem_set(UiInteger *i, int64_t value) {
     i->value = value;
     gtk_check_menu_item_set_active(i->obj, value);
 }
@@ -478,7 +478,7 @@
         GdkEventButton *e = (GdkEventButton*)event;
         if(e->button == 3) {
             gtk_widget_show_all(GTK_WIDGET(menu));
-            gtk_menu_popup(menu, NULL, NULL, NULL, NULL, e->button, e->time);
+            ui_contextmenu_popup(menu);
             return TRUE;
         }
     }
@@ -501,7 +501,11 @@
 }
 
 void ui_contextmenu_popup(UIMENU menu) {
+#if GTK_MAJOR_VERSION >= 3 && GTK_MINOR_VERSION >= 16
+    gtk_menu_popup_at_pointer(menu, NULL);
+#else
     gtk_menu_popup(menu, NULL, NULL, 0, 0, 0, gtk_get_current_event_time());
+#endif
 }
 
 void ui_widget_menuitem(UiObject *obj, char *label, ui_callback f, void *userdata) {

mercurial