some other fixes, resize contains a minor bug
This commit is contained in:
		
							
								
								
									
										16
									
								
								dwm.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								dwm.c
									
									
									
									
									
								
							@@ -1276,7 +1276,6 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
 | 
				
			|||||||
	XWindowChanges wc;
 | 
						XWindowChanges wc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	m = c->monitor;
 | 
						m = c->monitor;
 | 
				
			||||||
 | 
					 | 
				
			||||||
	if(sizehints) {
 | 
						if(sizehints) {
 | 
				
			||||||
		/* set minimum possible */
 | 
							/* set minimum possible */
 | 
				
			||||||
		if (w < 1)
 | 
							if (w < 1)
 | 
				
			||||||
@@ -1325,6 +1324,7 @@ resize(Client *c, int x, int y, int w, int h, Bool sizehints) {
 | 
				
			|||||||
		x = m->sx;
 | 
							x = m->sx;
 | 
				
			||||||
	if(y + h + 2 * c->border < m->sy)
 | 
						if(y + h + 2 * c->border < m->sy)
 | 
				
			||||||
		y = m->sy;
 | 
							y = m->sy;
 | 
				
			||||||
 | 
						fprintf(stderr, "resize %d %d %d %d (%d %d %d %d)\n", x, y , w, h, m->sx, m->sy, m->sw, m->sh);
 | 
				
			||||||
	if(c->x != x || c->y != y || c->w != w || c->h != h) {
 | 
						if(c->x != x || c->y != y || c->w != w || c->h != h) {
 | 
				
			||||||
		c->x = wc.x = x;
 | 
							c->x = wc.x = x;
 | 
				
			||||||
		c->y = wc.y = y;
 | 
							c->y = wc.y = y;
 | 
				
			||||||
@@ -1605,7 +1605,7 @@ setup(void) {
 | 
				
			|||||||
		m = &monitors[i];
 | 
							m = &monitors[i];
 | 
				
			||||||
		m->id = i;
 | 
							m->id = i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (mcount != 1 && isxinerama) {
 | 
							if(mcount != 1 && isxinerama) {
 | 
				
			||||||
			m->sx = info[i].x_org;
 | 
								m->sx = info[i].x_org;
 | 
				
			||||||
			m->sy = info[i].y_org;
 | 
								m->sy = info[i].y_org;
 | 
				
			||||||
			m->sw = info[i].width;
 | 
								m->sw = info[i].width;
 | 
				
			||||||
@@ -1727,9 +1727,9 @@ tile(Monitor *m) {
 | 
				
			|||||||
	Client *c, *mc;
 | 
						Client *c, *mc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	domwfact = dozoom = True;
 | 
						domwfact = dozoom = True;
 | 
				
			||||||
 | 
						nx = m->wax;
 | 
				
			||||||
	nx = ny = nw = 0; /* gcc stupidity requires this */
 | 
						ny = m->way;
 | 
				
			||||||
 | 
						nw = 0;
 | 
				
			||||||
	for(n = 0, c = nexttiled(clients, m); c; c = nexttiled(c->next, m))
 | 
						for(n = 0, c = nexttiled(clients, m); c; c = nexttiled(c->next, m))
 | 
				
			||||||
		n++;
 | 
							n++;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1757,16 +1757,17 @@ tile(Monitor *m) {
 | 
				
			|||||||
			else
 | 
								else
 | 
				
			||||||
				nh = th - 2 * c->border;
 | 
									nh = th - 2 * c->border;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							fprintf(stderr, "tile %d %d %d %d\n", nx, ny, nw, nh);
 | 
				
			||||||
		resize(c, nx, ny, nw, nh, RESIZEHINTS);
 | 
							resize(c, nx, ny, nw, nh, RESIZEHINTS);
 | 
				
			||||||
		if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw)))
 | 
							if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw)))
 | 
				
			||||||
			/* client doesn't accept size constraints */
 | 
								/* client doesn't accept size constraints */
 | 
				
			||||||
			resize(c, nx, ny, nw, nh, False);
 | 
								resize(c, nx, ny, nw, nh, False);
 | 
				
			||||||
		if(n > 1 && th != m->wah)
 | 
							if(n > 1 && th != m->wah)
 | 
				
			||||||
			ny = c->y + c->h + 2 * c->border;
 | 
								ny = c->y + c->h + 2 * c->border;
 | 
				
			||||||
 | 
					 | 
				
			||||||
		i++;
 | 
							i++;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
togglebar(const char *arg) {
 | 
					togglebar(const char *arg) {
 | 
				
			||||||
	if(bpos == BarOff)
 | 
						if(bpos == BarOff)
 | 
				
			||||||
@@ -1824,6 +1825,7 @@ unban(Client *c) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
unmanage(Client *c) {
 | 
					unmanage(Client *c) {
 | 
				
			||||||
 | 
						Monitor *m = c->monitor;
 | 
				
			||||||
	XWindowChanges wc;
 | 
						XWindowChanges wc;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wc.border_width = c->oldborder;
 | 
						wc.border_width = c->oldborder;
 | 
				
			||||||
@@ -1842,7 +1844,7 @@ unmanage(Client *c) {
 | 
				
			|||||||
	XSync(dpy, False);
 | 
						XSync(dpy, False);
 | 
				
			||||||
	XSetErrorHandler(xerror);
 | 
						XSetErrorHandler(xerror);
 | 
				
			||||||
	XUngrabServer(dpy);
 | 
						XUngrabServer(dpy);
 | 
				
			||||||
	arrange(NULL);
 | 
						arrange(m);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void
 | 
					void
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user