[dev] [dwm] bugfix for multi monitor setup

From: Brian L Angus <angus_AT_eng.utah.edu>
Date: Wed, 2 Nov 2011 15:19:17 -0600

Hello and thanks for the wonder that is dwm.

Below is a patch for issues I have found with 2 monitors where one
monitor is below another.

The issue can be found when moving a floating window that fills the
entire available area from one monitor to another. (This is with a
borderpx of 0)

thanks,
Brian


Index: dwm.c
===================================================================
--- dwm.c
+++ dwm.c
_AT_@ -338,18 +338,18 @@
                         *x = 0;
                 if(*y + *h + 2 * c->bw < 0)
                         *y = 0;
         }
         else {
- if(*x > m->mx + m->mw)
- *x = m->mx + m->mw - WIDTH(c);
- if(*y > m->my + m->mh)
- *y = m->my + m->mh - HEIGHT(c);
- if(*x + *w + 2 * c->bw < m->mx)
- *x = m->mx;
- if(*y + *h + 2 * c->bw < m->my)
- *y = m->my;
+ if(*x >= m->wx + m->ww)
+ *x = m->wx + m->ww - WIDTH(c);
+ if(*y >= m->wy + m->wh)
+ *y = m->wy + m->wh - HEIGHT(c);
+ if(*x + *w + 2 * c->bw <= m->wx)
+ *x = m->wx;
+ if(*y + *h + 2 * c->bw <= m->wy)
+ *y = m->wy;
         }
         if(*h < bh)
                 *h = bh;
         if(*w < bh)
                 *w = bh;
_AT_@ -1144,11 +1144,11 @@
                         c->x = c->mon->mx + c->mon->mw - WIDTH(c);
                 if(c->y + HEIGHT(c) > c->mon->my + c->mon->mh)
                         c->y = c->mon->my + c->mon->mh - HEIGHT(c);
                 c->x = MAX(c->x, c->mon->mx);
                 /* only fix client y-offset, if the client center might cover the bar */
- c->y = MAX(c->y, ((c->mon->by == 0) && (c->x + (c->w / 2) >= c->mon->wx)
+ c->y = MAX(c->y, ((c->mon->by == c->mon->my) && (c->x + (c->w / 2) >= c->mon->wx)
                            && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
                 c->bw = borderpx;
         }
         wc.border_width = c->bw;
         XConfigureWindow(dpy, w, CWBorderWidth, &wc);
Received on Wed Nov 02 2011 - 22:19:17 CET

This archive was generated by hypermail 2.3.0 : Wed Nov 02 2011 - 22:24:03 CET