diff options
Diffstat (limited to 'applets')
-rw-r--r-- | applets/clock/clock.c | 4 | ||||
-rw-r--r-- | applets/notification_area/status-notifier/sn-item.c | 11 |
2 files changed, 15 insertions, 0 deletions
diff --git a/applets/clock/clock.c b/applets/clock/clock.c index c765b7ef..f52ce88b 100644 --- a/applets/clock/clock.c +++ b/applets/clock/clock.c @@ -909,7 +909,11 @@ position_calendar_popup (ClockData *cd) n = gdk_screen_get_n_monitors (screen); #endif for (i = 0; i < n; i++) { +#if GTK_CHECK_VERSION (3, 22, 0) + gdk_monitor_get_geometry (gdk_display_get_monitor (display, i), &monitor); +#else gdk_screen_get_monitor_geometry (screen, i, &monitor); +#endif if (x >= monitor.x && x <= monitor.x + monitor.width && y >= monitor.y && y <= monitor.y + monitor.height) { found_monitor = TRUE; 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) |