X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=openbox%2Fmenuframe.c;h=5a18c51c32ea4758688656214ffd6ce010f5f8ea;hb=64c65f3b67364bb82420dbdd05d7e655b1d74d43;hp=fcdb47f5fcac17310a0ca6251ae65362c696c026;hpb=b49b7c415c5b61910e7c2c28831c047f0e479ac5;p=chaz%2Fopenbox diff --git a/openbox/menuframe.c b/openbox/menuframe.c index fcdb47f5..5a18c51c 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -42,7 +42,7 @@ static void menu_entry_frame_free(ObMenuEntryFrame *self); static void menu_frame_render(ObMenuFrame *self); static void menu_frame_update(ObMenuFrame *self); -static Window createWindow(Window parent, unsigned long mask, +static Window createWindow(Window parent, gulong mask, XSetWindowAttributes *attrib) { return XCreateWindow(ob_display, parent, 0, 0, 1, 1, 0, @@ -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); } }