mirror of
https://github.com/mintycube/dwm.git
synced 2024-10-22 14:05:45 +02:00
floatpos: correction
This commit is contained in:
parent
6c2d1518ab
commit
9ae251791d
17
dwm.c
17
dwm.c
@ -613,15 +613,14 @@ applyrules(Client *c)
|
||||
c->y = c->mon->wy + (c->mon->wh / 2 - HEIGHT(c) / 2);
|
||||
}
|
||||
#endif // SCRATCHPADS_PATCH | SCRATCHPAD_KEEP_POSITION_AND_SIZE_PATCH
|
||||
for (m = mons; m && m->num != r->monitor; m = m->next);
|
||||
if (m)
|
||||
c->mon = m;
|
||||
#if FLOATPOS_PATCH
|
||||
if (c->isfloating && r->floatpos)
|
||||
setfloatpos(c, r->floatpos);
|
||||
#endif // FLOATPOS_PATCH
|
||||
|
||||
for (m = mons; m && m->num != r->monitor; m = m->next);
|
||||
if (m)
|
||||
c->mon = m;
|
||||
|
||||
#if SWITCHTAG_PATCH
|
||||
#if SWALLOW_PATCH
|
||||
if (r->switchtag && (c->noswallow || !termforwin(c)))
|
||||
@ -2236,6 +2235,13 @@ manage(Window w, XWindowAttributes *wa)
|
||||
if (XGetTransientForHint(dpy, w, &trans) && (t = wintoclient(trans))) {
|
||||
c->mon = t->mon;
|
||||
c->tags = t->tags;
|
||||
#if FLOATPOS_PATCH
|
||||
#if SETBORDERPX_PATCH
|
||||
c->bw = c->mon->borderpx;
|
||||
#else
|
||||
c->bw = borderpx;
|
||||
#endif // SETBORDERPX_PATCH
|
||||
#endif // FLOATPOS_PATCH
|
||||
} else {
|
||||
c->mon = selmon;
|
||||
#if FLOATPOS_PATCH
|
||||
@ -2278,6 +2284,9 @@ manage(Window w, XWindowAttributes *wa)
|
||||
XSetWindowBorder(dpy, w, scheme[SchemeNorm][ColBorder].pixel);
|
||||
#endif // FLOAT_BORDER_COLOR_PATCH
|
||||
configure(c); /* propagates border_width, if size doesn't change */
|
||||
#if !FLOATPOS_PATCH
|
||||
updatesizehints(c);
|
||||
#endif // FLOATPOS_PATCH
|
||||
if (getatomprop(c, netatom[NetWMState]) == netatom[NetWMFullscreen])
|
||||
setfullscreen(c, 1);
|
||||
updatewmhints(c);
|
||||
|
@ -100,10 +100,7 @@ getfloatpos(int pos, char pCh, int size, char sCh, int min_p, int max_s, int cp,
|
||||
case 'Z': // fixed client right-hand position (position + size)
|
||||
if (pos == -1)
|
||||
break;
|
||||
if (pos > max_s)
|
||||
pos = max_s;
|
||||
if (pos < 0)
|
||||
pos = 0;
|
||||
pos = MAX(MIN(pos, max_s), 0);
|
||||
if (pCh == 'Z')
|
||||
cs = abs((cp + cs) - (min_p + pos));
|
||||
else if (pCh == 'C')
|
||||
@ -125,7 +122,7 @@ getfloatpos(int pos, char pCh, int size, char sCh, int min_p, int max_s, int cp,
|
||||
break;
|
||||
cp = min_p + delta * (size - 1);
|
||||
} else {
|
||||
for (i = 0; i < pos -1 && cp >= min_p + delta * i + (i > pos - rest ? i + rest - pos + 1 : 0); i++);
|
||||
for (i = 0; i < pos && cp >= min_p + delta * i + (i > pos - rest ? i + rest - pos + 1 : 0); i++);
|
||||
cp = min_p + delta * (MAX(MIN(i + size, pos), 1) - 1) + (i > pos - rest ? i + rest - pos + 1 : 0);
|
||||
}
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user