summaryrefslogtreecommitdiff
path: root/applets/notification_area/status-notifier/sn-item.c
diff options
context:
space:
mode:
Diffstat (limited to 'applets/notification_area/status-notifier/sn-item.c')
-rw-r--r--applets/notification_area/status-notifier/sn-item.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/applets/notification_area/status-notifier/sn-item.c b/applets/notification_area/status-notifier/sn-item.c
index 654bb291..87aeedf2 100644
--- a/applets/notification_area/status-notifier/sn-item.c
+++ b/applets/notification_area/status-notifier/sn-item.c
@@ -194,7 +194,12 @@ sn_item_popup_menu_position_func (GtkMenu *menu,
GtkRequisition menu_req;
GdkWindow *window;
GdkScreen *screen;
+#if GTK_CHECK_VERSION (3, 22, 0)
+ GdkMonitor *monitor_num;
+ GdkDisplay *display;
+#else
gint monitor_num;
+#endif
GdkRectangle monitor;
gtk_widget_get_allocation (widget, &widget_alloc);
@@ -207,8 +212,14 @@ sn_item_popup_menu_position_func (GtkMenu *menu,
*y += widget_alloc.y;
screen = gtk_widget_get_screen (widget);
+#if GTK_CHECK_VERSION (3, 22, 0)
+ display = gdk_screen_get_display (screen);
+ monitor_num = gdk_display_get_monitor_at_point (display, *x, *y);
+ gdk_monitor_get_geometry (monitor_num, &monitor);
+#else
monitor_num = gdk_screen_get_monitor_at_point (screen, *x, *y);
gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
+#endif
/* put the menu on the left if we can't put it on the right */
if (*x + menu_req.width > monitor.x + monitor.width)