[hackers] [wmii] Fix restacking bug.

From: Kris Maglione <jg_AT_suckless.org>
Date: Sat Feb 09 03:48:00 2008

changeset: 2283:ef3933934118
parent: 2281:a59b47a1ea39
user: Kris Maglione <jg_AT_suckless.org>
date: Fri Feb 08 21:38:39 2008 -0500
summary: Fix restacking bug.

diff -r d8e0b52185e4 -r ef3933934118 cmd/wmii/client.c
--- a/cmd/wmii/client.c Fri Feb 08 18:17:08 2008 -0500
+++ b/cmd/wmii/client.c Fri Feb 08 21:38:39 2008 -0500
@@ -97,8 +97,7 @@ client_create(XWindow w, XWindowAttribut
         c->border = wa->border_width;
 
         c->r.min = Pt(wa->x, wa->y);
- c->r.max = addpt(c->r.min,
- Pt(wa->width, wa->height));
+ c->r.max = addpt(c->r.min, Pt(wa->width, wa->height));
 
         c->w.type = WWindow;
         c->w.w = w;
@@ -194,8 +193,7 @@ client_manage(Client *c) {
         bool newgroup = !c->group
                      || c->group->ref == 1
                      || selclient() && (selclient()->group == c->group)
- || group_leader(c->group) && !client_viewframe(group_leader(c->group),
- c->sel->view);
+ || group_leader(c->group) && !client_viewframe(group_leader(c->group), c->sel->view);
 
         f = c->sel;
         if(!(c->w.ewmh.type & TypeSplash))
diff -r d8e0b52185e4 -r ef3933934118 cmd/wmii/float.c
--- a/cmd/wmii/float.c Fri Feb 08 18:17:08 2008 -0500
+++ b/cmd/wmii/float.c Fri Feb 08 21:38:39 2008 -0500
@@ -88,7 +88,7 @@ float_placeframe(Frame *f) {
                 return;
         */
         if(c->fullscreen || c->w.hints->position || starting) {
- f->r = f->floatr;
+ f->r = client_grav(c, c->r);
                 return;
         }
 
diff -r d8e0b52185e4 -r ef3933934118 cmd/wmii/frame.c
--- a/cmd/wmii/frame.c Fri Feb 08 18:17:08 2008 -0500
+++ b/cmd/wmii/frame.c Fri Feb 08 21:38:39 2008 -0500
@@ -29,8 +29,8 @@ frame_create(Client *c, View *v) {
         if(c->sel) {
                 f->floatr = c->sel->floatr;
                 f->r = c->sel->r;
- }else {
- f->r = client_grav(c, c->r);
+ }else{
+ f->r = client_grav(c, ZR);
                 f->floatr = f->r;
                 c->sel = f;
         }
@@ -99,6 +99,8 @@ frame_restack(Frame *f, Frame *above) {
         a = f->area;
         if(!a->floating)
                 return false;
+ if(f == above)
+ return false;
 
         if(above == nil && !(c->w.ewmh.type & TypeDock))
                 for(fp=a->stack; fp; fp=fp->snext)
@@ -129,6 +131,7 @@ frame_restack(Frame *f, Frame *above) {
         }
         if(f->snext)
                 f->snext->sprev = f;
+ assert(f->snext != f && f->sprev != f);
 
         return true;
 }
diff -r d8e0b52185e4 -r ef3933934118 mk/dir.mk
--- a/mk/dir.mk Fri Feb 08 18:17:08 2008 -0500
+++ b/mk/dir.mk Fri Feb 08 21:38:39 2008 -0500
@@ -1,24 +1,23 @@ MKSUBDIR = targ=$@; targ=$${targ\#d}; \
 MKSUBDIR = targ=$@; targ=$${targ\#d}; \
         for i in $$dirs; do \
- export BASE=$(BASE)$$i/; \
                 if [ ! -d $$i ]; then \
                         echo Skipping nonexistent directory: $$i 1>&2; \
                 else \
- echo MAKE $$targ $$BASE; \
- (cd $$i && $(MAKE) $$targ) || exit $?; \
+ echo MAKE $$targ $(BASE)$$i/; \
+ (cd $$i && $(MAKE) BASE="$(BASE)$$i/" $$targ) || exit $?; \
                 fi; \
         done
 
 dall:
- +dirs="$(DIRS)"; $(MKSUBDIR)
+ dirs="$(DIRS)"; $(MKSUBDIR)
 dclean:
- +dirs="$(DIRS)"; $(MKSUBDIR)
+ dirs="$(DIRS)"; $(MKSUBDIR)
 dinstall:
- +dirs="$(INSTDIRS)"; $(MKSUBDIR)
+ dirs="$(INSTDIRS)"; $(MKSUBDIR)
 duninstall:
- +dirs="$(INSTDIRS)"; $(MKSUBDIR)
+ dirs="$(INSTDIRS)"; $(MKSUBDIR)
 ddepend:
- +dirs="$(DIRS)"; $(MKSUBDIR)
+ dirs="$(DIRS)"; $(MKSUBDIR)
 
 all: dall
 clean: dclean
diff -r d8e0b52185e4 -r ef3933934118 mk/hdr.mk
--- a/mk/hdr.mk Fri Feb 08 18:17:08 2008 -0500
+++ b/mk/hdr.mk Fri Feb 08 21:38:39 2008 -0500
@@ -36,8 +36,8 @@ all:
         $(LINK) $@ $<
 
 .c.O:
- $(COMPILE) ${<:.c=.o} $<
- $(LINK) $@ ${<:.c=.o}
+ ${COMPILE} ${<:.c=.o} $<
+ ${LINK} $@ ${<:.c=.o}
 
 .sh.O:
         echo FILTER $(BASE)$<
Received on Sat Feb 09 2008 - 03:48:00 UTC

This archive was generated by hypermail 2.2.0 : Sun Jul 13 2008 - 15:59:20 UTC