X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;ds=sidebyside;f=openbox%2Fmenuframe.c;h=0d04c7a8976e139c71d261e8e44c90ceec9e4ff7;hb=acc6124682c674e16b896bfe6b54c94f12f4cb87;hp=fcdb47f5fcac17310a0ca6251ae65362c696c026;hpb=b49b7c415c5b61910e7c2c28831c047f0e479ac5;p=chaz%2Fopenbox diff --git a/openbox/menuframe.c b/openbox/menuframe.c index fcdb47f5..0d04c7a8 100644 --- a/openbox/menuframe.c +++ b/openbox/menuframe.c @@ -29,7 +29,7 @@ #define MAX_MENU_WIDTH 400 #define FRAME_EVENTMASK (ButtonPressMask |ButtonMotionMask | EnterWindowMask |\ - LeaveWindowMask) + LeaveWindowMask) #define TITLE_EVENTMASK (ButtonPressMask | ButtonMotionMask) #define ENTRY_EVENTMASK (EnterWindowMask | LeaveWindowMask | \ ButtonPressMask | ButtonReleaseMask) @@ -42,11 +42,11 @@ 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, - XSetWindowAttributes *attrib) +static Window createWindow(Window parent, gulong mask, + XSetWindowAttributes *attrib) { return XCreateWindow(ob_display, parent, 0, 0, 1, 1, 0, - RrDepth(ob_rr_inst), InputOutput, + RrDepth(ob_rr_inst), InputOutput, RrVisual(ob_rr_inst), mask, attrib); } @@ -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); } }