[hackers] [wmii] Use a backing store, and more/resize uncollapsed clients first for flicker prevention.

From: Kris Maglione <jg_AT_suckless.org>
Date: Sat Mar 03 08:23:35 2007

changeset: 1987:d4a2adf196c3
tag: tip
user: Kris Maglione <jg_AT_suckless.org>
date: Sat Mar 03 02:23:22 2007 -0500
summary: Use a backing store, and more/resize uncollapsed clients first for flicker prevention.

diff -r 60312c132bea -r d4a2adf196c3 client.c
--- a/client.c Sat Mar 03 01:36:03 2007 -0500
+++ b/client.c Sat Mar 03 02:23:22 2007 -0500
@@ -47,6 +47,7 @@ create_client(Window w, XWindowAttribute
 
         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, XWindowAttribute
                 /* 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 -r 60312c132bea -r d4a2adf196c3 column.c
--- a/column.c Sat Mar 03 01:36:03 2007 -0500
+++ b/column.c Sat Mar 03 02:23:22 2007 -0500
@@ -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);
 }
 
Received on Sat Mar 03 2007 - 08:23:35 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:56:06 UTC