From: John Darrington Date: Thu, 5 Oct 2017 08:16:08 +0000 (+0200) Subject: Provide wrapper for gtk_menu_popup_at_pointer. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=c1f04750c4430bf3e7f0630842f879ee695b947d Provide wrapper for gtk_menu_popup_at_pointer. This should keep older versions of Gtk+ happy. Tested on Gtk+-3.18 --- diff --git a/src/ui/gui/include/gtk/gtk.in.h b/src/ui/gui/include/gtk/gtk.in.h index 29fc7d5a96..8df67cd0cc 100644 --- a/src/ui/gui/include/gtk/gtk.in.h +++ b/src/ui/gui/include/gtk/gtk.in.h @@ -1,5 +1,5 @@ /* Wrapper for . - Copyright (C) 2011, 2012 Free Software Foundation, Inc. + Copyright (C) 2011, 2012, 2017 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,8 +31,18 @@ #if (GTK_CHECK_VERSION(3,8,0) == 0) -#define gtk_widget_register_window(widget, window) gdk_window_set_user_data (window, widget); +#define gtk_widget_register_window(widget, window) gdk_window_set_user_data (window, widget) #endif +#if (GTK_CHECK_VERSION(3,22,0) == 0) +static inline void +gtk_menu_popup_at_pointer (GtkMenu *menu, const GdkEvent *trigger) +{ + const GdkEventButton *be = trigger; + gtk_menu_popup (menu, NULL, NULL, NULL, NULL, be ? be->button : 0, be ? be->time : 0); +} +#endif + + #endif /* PSPP_GTK_GTK_H */ diff --git a/src/ui/gui/psppire-dictview.c b/src/ui/gui/psppire-dictview.c index 7893dcf34d..f09cb57ad7 100644 --- a/src/ui/gui/psppire-dictview.c +++ b/src/ui/gui/psppire-dictview.c @@ -517,8 +517,7 @@ show_menu (PsppireDictView *dv, GdkEventButton *event, gpointer data) if (event->button != 3) return FALSE; - gtk_menu_popup (GTK_MENU (dv->menu), NULL, NULL, NULL, NULL, - event->button, event->time); + gtk_menu_popup_at_pointer (GTK_MENU (dv->menu), event); return TRUE; }