diff options
Diffstat (limited to 'src/ui')
-rw-r--r-- | src/ui/menu.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/ui/menu.c b/src/ui/menu.c index 58ed1704..d066ffcb 100644 --- a/src/ui/menu.c +++ b/src/ui/menu.c @@ -103,6 +103,7 @@ static void popup_position_func(GtkMenu* menu, gint* x, gint* y, gboolean* push_ { GtkRequisition req; GdkPoint* pos; + int sc_width, sc_height; pos = user_data; @@ -116,9 +117,12 @@ static void popup_position_func(GtkMenu* menu, gint* x, gint* y, gboolean* push_ *x = MAX (0, *x - req.width); } + gdk_window_get_geometry (gdk_screen_get_root_window (gdk_screen_get_default()), + NULL, NULL, &sc_width, &sc_height); + /* Ensure onscreen */ - *x = CLAMP (*x, 0, MAX(0, gdk_screen_width() - req.width)); - *y = CLAMP (*y, 0, MAX(0, gdk_screen_height() - req.height)); + *x = CLAMP (*x, 0, MAX(0, sc_width - req.width)); + *y = CLAMP (*y, 0, MAX(0, sc_height - req.height)); } static void menu_closed(GtkMenu* widget, gpointer data) |