diff options
author | Okan Demirmen <okan@cvs.openbsd.org> | 2012-07-16 01:36:32 +0000 |
---|---|---|
committer | Okan Demirmen <okan@cvs.openbsd.org> | 2012-07-16 01:36:32 +0000 |
commit | e4326ce3069cf4cf2f75ce3870ecd936cc24de83 (patch) | |
tree | f78641783b66035f6be261a9fc31a7dbcba184ee /app/cwm/client.c | |
parent | 2a3d566a920f6d25cd43a49362a15c3f82f9dd62 (diff) |
move the HasXinerama check into screen_find_xinerama and simplify logic;
moves closer to logic in menu code.
Diffstat (limited to 'app/cwm/client.c')
-rw-r--r-- | app/cwm/client.c | 61 |
1 files changed, 26 insertions, 35 deletions
diff --git a/app/cwm/client.c b/app/cwm/client.c index f7629dd24..b9bab580f 100644 --- a/app/cwm/client.c +++ b/app/cwm/client.c @@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: client.c,v 1.98 2012/07/13 17:01:04 okan Exp $ + * $OpenBSD: client.c,v 1.99 2012/07/16 01:36:30 okan Exp $ */ #include <sys/param.h> @@ -258,6 +258,7 @@ client_maximize(struct client_ctx *cc) struct screen_ctx *sc = cc->sc; int xmax = sc->view.w, ymax = sc->view.h; int x_org = 0, y_org = 0; + XineramaScreenInfo *xine; if (cc->flags & CLIENT_FREEZE) return; @@ -279,24 +280,21 @@ client_maximize(struct client_ctx *cc) cc->savegeom.x = cc->geom.x; } - if (HasXinerama) { - XineramaScreenInfo *xine; - /* - * pick screen that the middle of the window is on. - * that's probably more fair than if just the origin of - * a window is poking over a boundary - */ - xine = screen_find_xinerama(sc, - cc->geom.x + cc->geom.w / 2, - cc->geom.y + cc->geom.h / 2); - if (xine == NULL) - goto calc; + /* + * pick screen that the middle of the window is on. + * that's probably more fair than if just the origin of + * a window is poking over a boundary + */ + xine = screen_find_xinerama(sc, + cc->geom.x + cc->geom.w / 2, + cc->geom.y + cc->geom.h / 2); + if (xine) { x_org = xine->x_org; y_org = xine->y_org; xmax = xine->width; ymax = xine->height; } -calc: + cc->geom.x = x_org + sc->gap.left; cc->geom.y = y_org + sc->gap.top; cc->geom.h = ymax - (sc->gap.top + sc->gap.bottom); @@ -313,6 +311,7 @@ client_vertmaximize(struct client_ctx *cc) { struct screen_ctx *sc = cc->sc; int y_org = 0, ymax = sc->view.h; + XineramaScreenInfo *xine; if (cc->flags & CLIENT_FREEZE) return; @@ -336,17 +335,14 @@ client_vertmaximize(struct client_ctx *cc) cc->bwidth = 0; } - if (HasXinerama) { - XineramaScreenInfo *xine; - xine = screen_find_xinerama(sc, - cc->geom.x + cc->geom.w / 2, - cc->geom.y + cc->geom.h / 2); - if (xine == NULL) - goto calc; + xine = screen_find_xinerama(sc, + cc->geom.x + cc->geom.w / 2, + cc->geom.y + cc->geom.h / 2); + if (xine) { y_org = xine->y_org; ymax = xine->height; } -calc: + cc->geom.y = y_org + sc->gap.top; cc->geom.h = ymax - (cc->bwidth * 2) - (sc->gap.top + sc->gap.bottom); @@ -361,6 +357,7 @@ client_horizmaximize(struct client_ctx *cc) { struct screen_ctx *sc = cc->sc; int x_org = 0, xmax = sc->view.w; + XineramaScreenInfo *xine; if (cc->flags & CLIENT_FREEZE) return; @@ -384,17 +381,14 @@ client_horizmaximize(struct client_ctx *cc) cc->bwidth = 0; } - if (HasXinerama) { - XineramaScreenInfo *xine; - xine = screen_find_xinerama(sc, - cc->geom.x + cc->geom.w / 2, - cc->geom.y + cc->geom.h / 2); - if (xine == NULL) - goto calc; + xine = screen_find_xinerama(sc, + cc->geom.x + cc->geom.w / 2, + cc->geom.y + cc->geom.h / 2); + if (xine) { x_org = xine->x_org; xmax = xine->width; } -calc: + cc->geom.x = x_org + sc->gap.left; cc->geom.w = xmax - (cc->bwidth * 2) - (sc->gap.left + sc->gap.right); @@ -682,16 +676,13 @@ client_placecalc(struct client_ctx *cc) int xmax, ymax; xu_ptr_getpos(sc->rootwin, &xmouse, &ymouse); - if (HasXinerama) { - info = screen_find_xinerama(sc, xmouse, ymouse); - if (info == NULL) - goto noxine; + info = screen_find_xinerama(sc, xmouse, ymouse); + if (info) { xorig = info->x_org; yorig = info->y_org; xmax = xorig + info->width; ymax = yorig + info->height; } else { -noxine: xorig = yorig = 0; xmax = sc->view.w; ymax = sc->view.h; |