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
This commit is contained in:
parent
1a005d7291
commit
5316bc6c3e
4 changed files with 26 additions and 25 deletions
|
@ -2398,8 +2398,10 @@ void client_configure_full(ObClient *self, ObCorner anchor,
|
|||
(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 @@ void client_configure_full(ObClient *self, ObCorner anchor,
|
|||
}
|
||||
|
||||
/* 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);
|
||||
}
|
||||
|
|
|
@ -672,9 +672,6 @@ static void event_handle_client(ObClient *client, XEvent *e)
|
|||
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
|
||||
|
|
|
@ -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 @@ ObFrame *frame_new(ObClient *client)
|
|||
|
||||
self = g_new0(ObFrame, 1);
|
||||
|
||||
self->obscured = TRUE;
|
||||
|
||||
visual = check_32bit_client(client);
|
||||
|
||||
/* create the non-visible decor windows */
|
||||
|
@ -103,6 +100,12 @@ ObFrame *frame_new(ObClient *client)
|
|||
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 @@ ObFrame *frame_new(ObClient *client)
|
|||
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;
|
||||
|
@ -138,11 +140,6 @@ ObFrame *frame_new(ObClient *client)
|
|||
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;
|
||||
|
||||
/* the other stuff is shown based on decor settings */
|
||||
|
@ -435,12 +432,10 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
|
|||
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);
|
||||
}
|
||||
|
@ -514,6 +509,13 @@ void frame_adjust_focus(ObFrame *self, gboolean hilite)
|
|||
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)
|
||||
{
|
||||
framerender_frame(self);
|
||||
|
|
|
@ -77,9 +77,6 @@ struct _ObFrame
|
|||
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);
|
||||
|
|
Loading…
Reference in a new issue