From cc08aef0df6236f794fb1d5dfcef265dba9da228 Mon Sep 17 00:00:00 2001 From: okan Date: Fri, 13 Jul 2012 14:18:04 +0000 Subject: [PATCH] introduce screen "view" area and "work" area (gap applied) to simplify various blocks that require understanding the screen geometry. --- calmwm.h | 9 +++++++++ screen.c | 10 ++++++++++ 2 files changed, 19 insertions(+) diff --git a/calmwm.h b/calmwm.h index 3ef5260..4eee07b 100644 --- a/calmwm.h +++ b/calmwm.h @@ -96,6 +96,13 @@ struct color { unsigned long pixel; }; +struct geom { + int x; + int y; + int w; + int h; +}; + struct gap { int top; int bottom; @@ -206,6 +213,8 @@ struct screen_ctx { int cycling; int xmax; int ymax; + struct geom view; /* viewable area */ + struct geom work; /* workable area, gap-applied */ struct gap gap; struct cycle_entry_q mruq; XftColor xftcolor; diff --git a/screen.c b/screen.c index dd7eb0e..72468c2 100644 --- a/screen.c +++ b/screen.c @@ -120,6 +120,16 @@ screen_update_geometry(struct screen_ctx *sc) sc->xmax = DisplayWidth(X_Dpy, sc->which); sc->ymax = DisplayHeight(X_Dpy, sc->which); + sc->view.x = 0; + sc->view.y = 0; + 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); + screen_init_xinerama(sc); xu_ewmh_net_desktop_geometry(sc);