X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.c;h=c1bacb67a6254815d06763f4016beed3c24abb7c;hb=c8983c42a7c27321d18825f2a130c15e29046f7b;hp=cdacf101c70d6b9afad7bb9766db9470f4701701;hpb=79cd7b4b2c21c975c441831760708d4919208f6d;p=chaz%2Fopenbox diff --git a/openbox/frame.c b/openbox/frame.c index cdacf101..c1bacb67 100644 --- a/openbox/frame.c +++ b/openbox/frame.c @@ -29,8 +29,7 @@ #include "moveresize.h" #include "render/theme.h" -#define PLATE_EVENTMASK (SubstructureRedirectMask | ButtonPressMask | \ - FocusChangeMask) +#define PLATE_EVENTMASK (SubstructureRedirectMask | FocusChangeMask) #define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \ ButtonPressMask | ButtonReleaseMask) #define ELEMENT_EVENTMASK (ButtonPressMask | ButtonReleaseMask | \ @@ -40,8 +39,7 @@ If it does get them, then it needs its own context for enter events because sloppy focus will focus the window when you enter the inner window from the frame. */ -#define INNER_EVENTMASK (ButtonPressMask | ButtonReleaseMask | \ - ButtonMotionMask) +#define INNER_EVENTMASK (ButtonPressMask) #define FRAME_HANDLE_Y(f) (f->innersize.top + f->client->area.height + \ f->cbwidth_y) @@ -171,6 +169,8 @@ static void set_theme_statics(ObFrame *self) /* set colors/appearance/sizes for stuff that doesn't change */ XSetWindowBorder(ob_display, self->window, RrColorPixel(ob_rr_theme->frame_b_color)); + XSetWindowBorder(ob_display, self->inner, + RrColorPixel(ob_rr_theme->frame_b_color)); XSetWindowBorder(ob_display, self->title, RrColorPixel(ob_rr_theme->frame_b_color)); XSetWindowBorder(ob_display, self->handle, @@ -348,6 +348,7 @@ void frame_adjust_area(ObFrame *self, gboolean moved, /* set border widths */ if (!fake) { XSetWindowBorderWidth(ob_display, self->window, self->bwidth); + XSetWindowBorderWidth(ob_display, self->inner, self->bwidth); XSetWindowBorderWidth(ob_display, self->title, self->rbwidth); XSetWindowBorderWidth(ob_display, self->handle, self->rbwidth); XSetWindowBorderWidth(ob_display, self->lgrip, self->rbwidth); @@ -432,8 +433,10 @@ void frame_adjust_area(ObFrame *self, gboolean moved, /* move and resize the inner border window which contains the plate */ XMoveResizeWindow(ob_display, self->inner, - self->innersize.left - self->cbwidth_x, - self->innersize.top - self->cbwidth_y, + self->innersize.left - self->cbwidth_x - + self->bwidth, + self->innersize.top - self->cbwidth_y - + self->bwidth, self->client->area.width + self->cbwidth_x * 2, self->client->area.height + @@ -830,7 +833,7 @@ ObFrameContext frame_context(ObClient *client, Window win) } self = client->frame; - if (win == self->plate) { + if (win == self->inner || win == self->plate) { /* conceptually, this is the desktop, as far as users are concerned */ if (client->type == OB_CLIENT_TYPE_DESKTOP) @@ -839,7 +842,6 @@ ObFrameContext frame_context(ObClient *client, Window win) } if (win == self->window) return OB_FRAME_CONTEXT_FRAME; - if (win == self->inner) return OB_FRAME_CONTEXT_FRAME; if (win == self->title) return OB_FRAME_CONTEXT_TITLEBAR; if (win == self->label) return OB_FRAME_CONTEXT_TITLEBAR; if (win == self->handle) return OB_FRAME_CONTEXT_HANDLE;