some other fixes, resize contains a minor bug
de5b294e
1 file(s) · +9 −7
| 1276 | 1276 | XWindowChanges wc; |
|
| 1277 | 1277 | ||
| 1278 | 1278 | m = c->monitor; |
|
| 1279 | - | ||
| 1280 | 1279 | if(sizehints) { |
|
| 1281 | 1280 | /* set minimum possible */ |
|
| 1282 | 1281 | if (w < 1) |
|
| 1325 | 1324 | x = m->sx; |
|
| 1326 | 1325 | if(y + h + 2 * c->border < m->sy) |
|
| 1327 | 1326 | y = m->sy; |
|
| 1327 | + | fprintf(stderr, "resize %d %d %d %d (%d %d %d %d)\n", x, y , w, h, m->sx, m->sy, m->sw, m->sh); |
|
| 1328 | 1328 | if(c->x != x || c->y != y || c->w != w || c->h != h) { |
|
| 1329 | 1329 | c->x = wc.x = x; |
|
| 1330 | 1330 | c->y = wc.y = y; |
|
| 1605 | 1605 | m = &monitors[i]; |
|
| 1606 | 1606 | m->id = i; |
|
| 1607 | 1607 | ||
| 1608 | - | if (mcount != 1 && isxinerama) { |
|
| 1608 | + | if(mcount != 1 && isxinerama) { |
|
| 1609 | 1609 | m->sx = info[i].x_org; |
|
| 1610 | 1610 | m->sy = info[i].y_org; |
|
| 1611 | 1611 | m->sw = info[i].width; |
|
| 1727 | 1727 | Client *c, *mc; |
|
| 1728 | 1728 | ||
| 1729 | 1729 | domwfact = dozoom = True; |
|
| 1730 | - | ||
| 1731 | - | nx = ny = nw = 0; /* gcc stupidity requires this */ |
|
| 1732 | - | ||
| 1730 | + | nx = m->wax; |
|
| 1731 | + | ny = m->way; |
|
| 1732 | + | nw = 0; |
|
| 1733 | 1733 | for(n = 0, c = nexttiled(clients, m); c; c = nexttiled(c->next, m)) |
|
| 1734 | 1734 | n++; |
|
| 1735 | 1735 | ||
| 1757 | 1757 | else |
|
| 1758 | 1758 | nh = th - 2 * c->border; |
|
| 1759 | 1759 | } |
|
| 1760 | + | fprintf(stderr, "tile %d %d %d %d\n", nx, ny, nw, nh); |
|
| 1760 | 1761 | resize(c, nx, ny, nw, nh, RESIZEHINTS); |
|
| 1761 | 1762 | if((RESIZEHINTS) && ((c->h < bh) || (c->h > nh) || (c->w < bh) || (c->w > nw))) |
|
| 1762 | 1763 | /* client doesn't accept size constraints */ |
|
| 1763 | 1764 | resize(c, nx, ny, nw, nh, False); |
|
| 1764 | 1765 | if(n > 1 && th != m->wah) |
|
| 1765 | 1766 | ny = c->y + c->h + 2 * c->border; |
|
| 1766 | - | ||
| 1767 | 1767 | i++; |
|
| 1768 | 1768 | } |
|
| 1769 | 1769 | } |
|
| 1770 | + | ||
| 1770 | 1771 | void |
|
| 1771 | 1772 | togglebar(const char *arg) { |
|
| 1772 | 1773 | if(bpos == BarOff) |
|
| 1824 | 1825 | ||
| 1825 | 1826 | void |
|
| 1826 | 1827 | unmanage(Client *c) { |
|
| 1828 | + | Monitor *m = c->monitor; |
|
| 1827 | 1829 | XWindowChanges wc; |
|
| 1828 | 1830 | ||
| 1829 | 1831 | wc.border_width = c->oldborder; |
|
| 1842 | 1844 | XSync(dpy, False); |
|
| 1843 | 1845 | XSetErrorHandler(xerror); |
|
| 1844 | 1846 | XUngrabServer(dpy); |
|
| 1845 | - | arrange(NULL); |
|
| 1847 | + | arrange(m); |
|
| 1846 | 1848 | } |
|
| 1847 | 1849 | ||
| 1848 | 1850 | void |
|