Explorar o código

fixed issue reported by sander

Anselm R.Garbe %!s(int64=19) %!d(string=hai) anos
pai
achega
ad2e77d635
Modificáronse 2 ficheiros con 6 adicións e 3 borrados
  1. 4 0
      client.c
  2. 2 3
      tag.c

+ 4 - 0
client.c

@@ -261,6 +261,10 @@ manage(Window w, XWindowAttributes *wa)
 	if(trans && (tc = getclient(trans))) {
 	if(trans && (tc = getclient(trans))) {
 		c->x = (tc->x + tc->w / 2) - (c->w / 2);
 		c->x = (tc->x + tc->w / 2) - (c->w / 2);
 		c->y = (tc->y + tc->h / 2) - (c->h / 2);
 		c->y = (tc->y + tc->h / 2) - (c->h / 2);
+		if(c->x < 0 || c->x >= sw)
+			c->x = (sw / 2) - (c->w / 2);
+		if(c->y < 0 || c->y >= sh)
+			c->y = ((sh - bh) / 2) - (c->h / 2) + bh;
 	}
 	}
 	else {
 	else {
 		c->x = (sw / 2) - (c->w / 2);
 		c->x = (sw / 2) - (c->w / 2);

+ 2 - 3
tag.c

@@ -49,12 +49,11 @@ dofloat(Arg *arg)
 	}
 	}
 	if(!sel || !isvisible(sel))
 	if(!sel || !isvisible(sel))
 		sel = getnext(clients);
 		sel = getnext(clients);
-	if(sel) {
+	if(sel)
 		focus(sel);
 		focus(sel);
-		restack();
-	}
 	else
 	else
 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
 		XSetInputFocus(dpy, root, RevertToPointerRoot, CurrentTime);
+	restack();
 }
 }
 
 
 void
 void