diff options
Diffstat (limited to 'screen.c')
-rw-r--r-- | screen.c | 26 |
1 files changed, 15 insertions, 11 deletions
@@ -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: screen.c,v 1.72 2015/06/26 15:21:58 okan Exp $ + * $OpenBSD: screen.c,v 1.73 2015/06/26 16:11:21 okan Exp $ */ #include <sys/types.h> @@ -140,12 +140,8 @@ screen_find_xinerama(struct screen_ctx *sc, int x, int y, int flags) break; } } - if (flags & CWM_GAP) { - geom.x += sc->gap.left; - geom.y += sc->gap.top; - geom.w -= (sc->gap.left + sc->gap.right); - geom.h -= (sc->gap.top + sc->gap.bottom); - } + if (flags & CWM_GAP) + geom = screen_apply_gap(sc, geom); return(geom); } @@ -160,10 +156,7 @@ screen_update_geometry(struct screen_ctx *sc) sc->view.w = DisplayWidth(X_Dpy, sc->which); sc->view.h = DisplayHeight(X_Dpy, sc->which); - sc->work.x = sc->view.x + sc->gap.left; - sc->work.y = sc->view.y + sc->gap.top; - sc->work.w = sc->view.w - (sc->gap.left + sc->gap.right); - sc->work.h = sc->view.h - (sc->gap.top + sc->gap.bottom); + sc->work = screen_apply_gap(sc, sc->view); while ((region = TAILQ_FIRST(&sc->regionq)) != NULL) { TAILQ_REMOVE(&sc->regionq, region, entry); @@ -200,3 +193,14 @@ screen_update_geometry(struct screen_ctx *sc) xu_ewmh_net_desktop_geometry(sc); xu_ewmh_net_workarea(sc); } + +struct geom +screen_apply_gap(struct screen_ctx *sc, struct geom geom) +{ + geom.x += sc->gap.left; + geom.y += sc->gap.top; + geom.w -= (sc->gap.left + sc->gap.right); + geom.h -= (sc->gap.top + sc->gap.bottom); + + return(geom); +} |