Преглед на файлове

configurenotify remembers max geom now, and restores this if necessary, however it accepts to touch the max size on configurerequest, this shouldn't break fillscreen apps (tested with mplayer)

Anselm R. Garbe преди 19 години
родител
ревизия
aa1bda8164
променени са 2 файла, в които са добавени 14 реда и са изтрити 4 реда
  1. 11 1
      event.c
  2. 3 3
      tag.c

+ 11 - 1
event.c

@@ -150,6 +150,7 @@ buttonpress(XEvent *e)
 static void
 configurerequest(XEvent *e)
 {
+	int ox, oy, ow, oh;
 	unsigned long newmask;
 	Client *c;
 	XConfigureRequestEvent *ev = &e->xconfigurerequest;
@@ -157,6 +158,10 @@ configurerequest(XEvent *e)
 	XWindowChanges wc;
 
 	if((c = getclient(ev->window))) {
+		ox = c->x;
+		oy = c->y;
+		ow = c->w;
+		oh = c->h;
 		gravitate(c, True);
 		if(ev->value_mask & CWX)
 			c->x = ev->x;
@@ -191,8 +196,13 @@ configurerequest(XEvent *e)
 			XSendEvent(dpy, c->win, True, NoEventMask, &synev);
 		}
 		XSync(dpy, False);
-		if(c->isfloat)
+		if(c->isfloat || c->ismax) {
 			resize(c, False, TopLeft);
+			c->x = ox;
+			c->y = oy;
+			c->w = ow;
+			c->h = oh;
+		}
 		else
 			arrange(NULL);
 	}

+ 3 - 3
tag.c

@@ -31,7 +31,7 @@ static RReg *rreg = NULL;
 static unsigned int len = 0;
 
 static void
-applytag()
+commit()
 {
 	/* asserts sel != NULL */
 	settitle(sel);
@@ -132,7 +132,7 @@ tag(Arg *arg)
 	for(i = 0; i < ntags; i++)
 		sel->tags[i] = False;
 	sel->tags[arg->i] = True;
-	applytag();
+	commit();
 }
 
 void
@@ -147,5 +147,5 @@ toggletag(Arg *arg)
 	for(i = 0; i < ntags && !sel->tags[i]; i++);
 	if(i == ntags)
 		sel->tags[arg->i] = True;
-	applytag();
+	commit();
 }