commit d1428fafd0138d697a0cf38f7fc8123567ddb59b
parent 162d53212ecf00dc7d20db93c6251469bf29b623
Author: Kris Maglione <jg@suckless.org>
Date: Sat, 3 Mar 2007 02:23:22 -0500
Use a backing store, and more/resize uncollapsed clients first for flicker prevention.
Diffstat:
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/client.c b/client.c
@@ -47,6 +47,7 @@ create_client(Window w, XWindowAttributes *wa) {
fwa.override_redirect = 1;
fwa.background_pixmap = ParentRelative;
+ fwa.backing_store = Always;
fwa.event_mask =
SubstructureRedirectMask
| SubstructureNotifyMask
@@ -67,7 +68,7 @@ create_client(Window w, XWindowAttributes *wa) {
/* depth */ DefaultDepth(blz.dpy, blz.screen),
/* class */ CopyFromParent,
/* visual */ DefaultVisual(blz.dpy, blz.screen),
- /* valuemask */ CWOverrideRedirect | CWEventMask | CWBackPixmap,
+ /* valuemask */ CWOverrideRedirect | CWEventMask | CWBackPixmap | CWBackingStore,
/* attributes */&fwa
);
@@ -622,7 +623,7 @@ resize_client(Client *c, XRectangle *r) {
f = c->sel;
resize_frame(f, r);
- if(f->area->view == screen->sel)
+ if(f->area->view == screen->sel)
XMoveResizeWindow(blz.dpy, c->framewin,
f->rect.x, f->rect.y,
f->rect.width, f->rect.height);
diff --git a/column.c b/column.c
@@ -179,9 +179,14 @@ arrange_column(Area *a, Bool dirty) {
}
scale_column(a);
resize:
- if(a->view == screen->sel)
+ if(a->view == screen->sel) {
for(f=a->frame; f; f=f->anext)
- resize_client(f->client, &f->rect);
+ if(!f->collapsed)
+ resize_client(f->client, &f->rect);
+ for(f=a->frame; f; f=f->anext)
+ if(f->collapsed)
+ resize_client(f->client, &f->rect);
+ }
flush_masked_events(EnterWindowMask);
}