all repos — openbox @ 5316bc6c3e3329dc620cfd15d472ed5d376100f8

openbox fork - make it a bit more like ryudo

1. remove some old event handling that was not used at all. yay less bandwidth.
2. make the client padding color show during resizes with drawContents off
Dana Jansens danakj@orodu.net
commit

5316bc6c3e3329dc620cfd15d472ed5d376100f8

parent

1a005d729155015be614ccb86b596020c99ae712

4 files changed, 26 insertions(+), 25 deletions(-)

jump to
M openbox/client.copenbox/client.c

@@ -2398,8 +2398,10 @@ (user && (final ||

(resized && config_resize_redraw)))); /* if the client is enlarging, then resize the client before the frame */ - if (send_resize_client && user && (w > oldw || h > oldh)) + if (send_resize_client && user && (w > oldw || h > oldh)) { XResizeWindow(ob_display, self->window, MAX(w, oldw), MAX(h, oldh)); + frame_adjust_client_area(self->frame); + } /* find the frame's dimensions and move/resize it */ if (self->decorations != fdecor || self->max_horz != fhorz)

@@ -2445,8 +2447,10 @@ FALSE, StructureNotifyMask, &event);

} /* if the client is shrinking, then resize the frame before the client */ - if (send_resize_client && (!user || (w <= oldw || h <= oldh))) + if (send_resize_client && (!user || (w <= oldw || h <= oldh))) { XResizeWindow(ob_display, self->window, w, h); + frame_adjust_client_area(self->frame); + } XFlush(ob_display); }
M openbox/event.copenbox/event.c

@@ -672,9 +672,6 @@ gint i=0;

ObFrameContext con; switch (e->type) { - case VisibilityNotify: - client->frame->obscured = e->xvisibility.state != VisibilityUnobscured; - break; case ButtonPress: case ButtonRelease: /* Wheel buttons don't draw because they are an instant click, so it
M openbox/frame.copenbox/frame.c

@@ -32,10 +32,9 @@

#define PLATE_EVENTMASK (SubstructureRedirectMask | ButtonPressMask | \ FocusChangeMask) #define FRAME_EVENTMASK (EnterWindowMask | LeaveWindowMask | \ - ButtonPressMask | ButtonReleaseMask | \ - VisibilityChangeMask) + ButtonPressMask | ButtonReleaseMask) #define ELEMENT_EVENTMASK (ButtonPressMask | ButtonReleaseMask | \ - ButtonMotionMask | ExposureMask | \ + ButtonMotionMask | \ EnterWindowMask | LeaveWindowMask) #define FRAME_HANDLE_Y(f) (f->innersize.top + f->client->area.height + \

@@ -81,8 +80,6 @@ Visual *visual;

self = g_new0(ObFrame, 1); - self->obscured = TRUE; - visual = check_32bit_client(client); /* create the non-visible decor windows */

@@ -103,6 +100,12 @@ attrib.event_mask = FRAME_EVENTMASK;

self->window = createWindow(RootWindow(ob_display, ob_screen), visual, mask, &attrib); + attrib.event_mask = ELEMENT_EVENTMASK; + self->inner = createWindow(self->window, visual, mask, &attrib); + + mask &= ~CWEventMask; + self->plate = createWindow(self->inner, visual, mask, &attrib); + /* create the visible decor windows */ if (visual) {

@@ -111,7 +114,6 @@ mask |= CWColormap | CWBackPixel | CWBorderPixel;

attrib.colormap = RrColormap(ob_rr_inst); } attrib.event_mask = ELEMENT_EVENTMASK; - self->inner = createWindow(self->window, NULL, mask, &attrib); self->title = createWindow(self->window, NULL, mask, &attrib); mask |= CWCursor;

@@ -137,11 +139,6 @@ attrib.cursor = ob_cursor(OB_CURSOR_SOUTHWEST);

self->lgrip = createWindow(self->handle, NULL, mask, &attrib); attrib.cursor = ob_cursor(OB_CURSOR_SOUTHEAST); self->rgrip = createWindow(self->handle, NULL, mask, &attrib); - - /* create the plate window which holds the client */ - - mask &= ~(CWEventMask | CWCursor); - self->plate = createWindow(self->inner, visual, mask, &attrib); self->focused = FALSE;

@@ -435,12 +432,10 @@ self->cbwidth_x * 2,

self->client->area.height + self->cbwidth_y * 2); - /* move and resize the plate */ - XMoveResizeWindow(ob_display, self->plate, - self->cbwidth_x, - self->cbwidth_y, - self->client->area.width, - self->client->area.height); + /* move the plate */ + XMoveWindow(ob_display, self->plate, + self->cbwidth_x, self->cbwidth_y); + /* when the client has StaticGravity, it likes to move around. */ XMoveWindow(ob_display, self->client->window, 0, 0); }

@@ -512,6 +507,13 @@ {

self->focused = hilite; framerender_frame(self); XFlush(ob_display); +} + +void frame_adjust_client_area(ObFrame *self) +{ + /* resize the plate */ + XResizeWindow(ob_display, self->plate, + self->client->area.width, self->client->area.height); } void frame_adjust_title(ObFrame *self)
M openbox/frame.hopenbox/frame.h

@@ -77,9 +77,6 @@ Strut size;

Rect area; gboolean visible; - /*! Whether the window is obscured at all or fully visible. */ - gboolean obscured; - guint decorations; gboolean max_horz;

@@ -154,6 +151,7 @@ void frame_adjust_theme(ObFrame *self);

void frame_adjust_shape(ObFrame *self); void frame_adjust_area(ObFrame *self, gboolean moved, gboolean resized, gboolean fake); +void frame_adjust_client_area(ObFrame *self); void frame_adjust_state(ObFrame *self); void frame_adjust_focus(ObFrame *self, gboolean hilite); void frame_adjust_title(ObFrame *self);