X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=dwm.c;h=61ac193dc6a6bdc6a4beddf2589faeffb21b0f81;hb=25c1eb28f955adf241226596335f5d73b28620a0;hp=f20861e13c3cc0c97f061ef67330c5aecfb2c35d;hpb=e408ca97d848949d5971ab70b26ebc6930c8fdd9;p=dwm.git diff --git a/dwm.c b/dwm.c index f20861e..61ac193 100644 --- a/dwm.c +++ b/dwm.c @@ -124,7 +124,7 @@ struct Monitor { int screen_number; float mfact; int by, btx; /* bar geometry */ - int mx, my, mw, mh; /* screen size */ + int mx, my, mw, mh; /* screen size */ int wx, wy, ww, wh; /* window area */ unsigned int seltags; unsigned int sellt; @@ -179,7 +179,6 @@ static long getstate(Window w); static Bool gettextprop(Window w, Atom atom, char *text, unsigned int size); static void grabbuttons(Client *c, Bool focused); static void grabkeys(void); -static Monitor *idxtomon(unsigned int n); static void initfont(const char *fontstr); static Bool isprotodel(Client *c); static void keypress(XEvent *e); @@ -233,13 +232,14 @@ static int xerrorstart(Display *dpy, XErrorEvent *ee); static void zoom(const Arg *arg); #ifdef XINERAMA static void focusmon(const Arg *arg); +static Monitor *idxtomon(unsigned int n); static void tagmon(const Arg *arg); #endif /* XINERAMA */ /* variables */ static char stext[256]; static int screen; -static int sx, sy, sw, sh; /* X display screen geometry x, y, width, height */ +static int sw, sh; /* X display screen geometry x, y, width, height */ static int bh, blw = 0; /* bar geometry */ static int (*xerrorxlib)(Display *, XErrorEvent *); static unsigned int numlockmask = 0; @@ -302,19 +302,20 @@ applyrules(Client *c) { Bool applysizehints(Client *c, int *x, int *y, int *w, int *h) { Bool baseismin; + Monitor *m = c->mon; /* set minimum possible */ *w = MAX(1, *w); *h = MAX(1, *h); - if(*x > sx + sw) - *x = sw - WIDTH(c); - if(*y > sy + sh) - *y = sh - HEIGHT(c); - if(*x + *w + 2 * c->bw < sx) - *x = sx; - if(*y + *h + 2 * c->bw < sy) - *y = sy; + if(*x > m->mx + m->mw) + *x = m->mw - WIDTH(c); + if(*y > m->my + m->mh) + *y = 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(*h < bh) *h = bh; if(*w < bh) @@ -942,6 +943,7 @@ grabkeys(void) { } } +#ifdef XINERAMA Monitor * idxtomon(unsigned int n) { unsigned int i; @@ -950,6 +952,7 @@ idxtomon(unsigned int n) { for(m = mons, i = 0; m && i != n; m = m->next, i++); return m; } +#endif /* XINERAMA */ void initfont(const char *fontstr) { @@ -1429,8 +1432,6 @@ setup(void) { screen = DefaultScreen(dpy); root = RootWindow(dpy, screen); initfont(font); - sx = 0; - sy = 0; sw = DisplayWidth(dpy, screen); sh = DisplayHeight(dpy, screen); bh = dc.h = dc.font.height + 2; @@ -1735,8 +1736,8 @@ updategeom(void) { /* default monitor setup */ { m->screen_number = 0; - m->wx = sx; - m->my = m->wy = sy; + m->wx = 0; + m->my = m->wy = 0; m->ww = sw; m->mh = m->wh = sh; }