X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenuframe.c;h=5a18c51c32ea4758688656214ffd6ce010f5f8ea;hb=64c65f3b67364bb82420dbdd05d7e655b1d74d43;hp=03e6162104f05889dd6f550701295ad98850e516;hpb=740c5b2a20d5110435d0874f8cc6a4c9dfd14777;p=chaz%2Fopenbox diff --git a/openbox/menuframe.c b/openbox/menuframe.c index 03e61621..5a18c51c 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -217,11 +217,17 @@ void menu_frame_move_on_screen(ObMenuFrame *self) if (dx || dy) { ObMenuFrame *f; - for (f = self; f; f = f->parent) + /* move the current menu frame to fit, but dont touch parents yet */ + menu_frame_move(self, self->area.x + dx, self->area.y + dy); + if (!config_menu_xorstyle) + dy = 0; /* if we want to be like xor, move parents in y- * + * and x-direction, otherwise just in x-dir */ + for (f = self->parent; f; f = f->parent) menu_frame_move(f, f->area.x + dx, f->area.y + dy); for (f = self->child; f; f = f->child) menu_frame_move(f, f->area.x + dx, f->area.y + dy); - XWarpPointer(ob_display, None, None, 0, 0, 0, 0, dx, dy); + if (config_menu_warppointer) + XWarpPointer(ob_display, None, None, 0, 0, 0, 0, dx, dy); } }