From 86bd36aaa0beff386cf780fac44797161b3dffc3 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Tue, 6 Jan 2015 23:26:34 +0100 Subject: [PATCH] Special case for unusual monitor setup When no monitor is at (0,0), the screen rect containing all monitors is not at the origin, but screen_apply_gravity_point assumes the passed x/y are relative to the passed area, so adjust them. --- openbox/actions/showmenu.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/openbox/actions/showmenu.c b/openbox/actions/showmenu.c index 0fdd8be..7411e98 100644 --- a/openbox/actions/showmenu.c +++ b/openbox/actions/showmenu.c @@ -109,9 +109,11 @@ static gboolean run_func(ObActionsData *data, gpointer options) position = o->position; } else { + const Rect *allmon; monitor = screen_num_monitors; - position.x.pos = data->x; - position.y.pos = data->y; + allmon = screen_physical_area_monitor(monitor); + position.x.pos = data->x - allmon->x; + position.y.pos = data->y - allmon->y; } /* you cannot call ShowMenu from inside a menu */ -- 1.9.1