applied dwm-4.8-snaptileds.diff
c619363d
1 file(s) · +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 | } |
|