From c1f04750c4430bf3e7f0630842f879ee695b947d Mon Sep 17 00:00:00 2001 From: John Darrington Date: Thu, 5 Oct 2017 10:16:08 +0200 Subject: [PATCH] Provide wrapper for gtk_menu_popup_at_pointer. This should keep older versions of Gtk+ happy. Tested on Gtk+-3.18 --- src/ui/gui/include/gtk/gtk.in.h | 14 ++++++++++++-- src/ui/gui/psppire-dictview.c | 3 +-- 2 files changed, 13 insertions(+), 4 deletions(-) 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; } -- 2.30.2