applied dwm-4.8-snaptileds.diff c619363d
Anselm R Garbe · 2008-02-11 20:43 1 file(s) · +11 −12
dwm.c +11 −12
368 368
		if(CLEANMASK(ev->state) != MODKEY)
369 369
			return;
370 370
		if(ev->button == Button1) {
371 -
			if((m->layout->arrange == floating) || c->isfloating)
372 -
				restack();
373 -
			else
374 -
				togglefloating(NULL);
371 +
			restack();
375 372
			movemouse(c);
376 373
		}
377 374
		else if(ev->button == Button2) {
378 375
			if((floating != m->layout->arrange) && c->isfloating)
379 376
				togglefloating(NULL);
380 -
			else
381 -
				zoom(NULL);
377 +
			zoom(NULL);
382 378
		}
383 379
		else if(ev->button == Button3 && !c->isfixed) {
384 -
			if((floating == m->layout->arrange) || c->isfloating)
385 -
				restack();
386 -
			else
387 -
				togglefloating(NULL);
380 +
			restack();
388 381
			resizemouse(c);
389 382
		}
390 383
	}
1195 1188
				ny = m->way;
1196 1189
			else if(abs((m->way + m->wah) - (ny + c->h + 2 * c->border)) < SNAP)
1197 1190
				ny = m->way + m->wah - c->h - 2 * c->border;
1198 -
			resize(c, nx, ny, c->w, c->h, False);
1191 +
			if((monitors[selmonitor].layout->arrange != floating) && (abs(nx - c->x) > SNAP || abs(ny - c->y) > SNAP))
1192 +
				togglefloating(NULL);
1193 +
			if((monitors[selmonitor].layout->arrange == floating) || c->isfloating)
1194 +
				resize(c, nx, ny, c->w, c->h, False);
1199 1195
			memcpy(c->tags, monitors[monitorat()].seltags, sizeof initags);
1200 1196
			break;
1201 1197
		}
1358 1354
				nw = 1;
1359 1355
			if((nh = ev.xmotion.y - ocy - 2 * c->border + 1) <= 0)
1360 1356
				nh = 1;
1361 -
			resize(c, c->x, c->y, nw, nh, True);
1357 +
			if((monitors[selmonitor].layout->arrange != floating) && (abs(nw - c->w) > SNAP || abs(nh - c->h) > SNAP))
1358 +
				togglefloating(NULL);
1359 +
			if((monitors[selmonitor].layout->arrange == floating) || c->isfloating)
1360 +
				resize(c, c->x, c->y, nw, nh, True);
1362 1361
			break;
1363 1362
		}
1364 1363
	}