diff -r 2e384acc89a6 -r 4e0b38bbd6c4 ui/gtk/menu.c --- 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) {