diff options
author | Okan Demirmen <okan@cvs.openbsd.org> | 2012-07-13 14:18:05 +0000 |
---|---|---|
committer | Okan Demirmen <okan@cvs.openbsd.org> | 2012-07-13 14:18:05 +0000 |
commit | faeb5961fdec501bae4e3401d9890e58b3fbbf25 (patch) | |
tree | e5a884e41cde0553fee6f1487db5e760aba43926 /app/cwm | |
parent | db32c6bd3a83f4c5d298c6d3c3a709e2fda75a6c (diff) |
introduce screen "view" area and "work" area (gap applied) to simplify
various blocks that require understanding the screen geometry.
Diffstat (limited to 'app/cwm')
-rw-r--r-- | app/cwm/calmwm.h | 11 | ||||
-rw-r--r-- | app/cwm/screen.c | 12 |
2 files changed, 21 insertions, 2 deletions
diff --git a/app/cwm/calmwm.h b/app/cwm/calmwm.h index 3383663c2..1bc20d222 100644 --- a/app/cwm/calmwm.h +++ b/app/cwm/calmwm.h @@ -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: calmwm.h,v 1.149 2012/07/06 14:18:00 okan Exp $ + * $OpenBSD: calmwm.h,v 1.150 2012/07/13 14:18:04 okan Exp $ */ #ifndef _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/app/cwm/screen.c b/app/cwm/screen.c index def241d4c..28778b12b 100644 --- a/app/cwm/screen.c +++ b/app/cwm/screen.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: screen.c,v 1.31 2012/07/06 14:18:00 okan Exp $ + * $OpenBSD: screen.c,v 1.32 2012/07/13 14:18:04 okan Exp $ */ #include <sys/param.h> @@ -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); |