Hi,
In screen_area(), if no matching region is found, the gap will
effectively be applied one time too many. Additionally,
region_ctx.work is never used, and .area is the same as .view, so
I removed these (except .view).
After this patch, screen_ctx.work is only used in
xu_ewmh_net_workarea(), so it can be removed later.
Vadik.
--
If there was anything that depressed him more than his own
cynicism, it was that quite often it still wasn't as cynical as
real life.
-- Terry Pratchett, "Guards! Guards!"
Index: calmwm.h
===================================================================
RCS file: /cvs/xenocara/app/cwm/calmwm.h,v
retrieving revision 1.311
diff -u -r1.311 calmwm.h
--- calmwm.h 12 Nov 2015 21:28:03 -0000 1.311
+++ calmwm.h 12 Dec 2015 17:28:02 -0000
@@ -218,9 +218,7 @@
struct region_ctx {
TAILQ_ENTRY(region_ctx) entry;
int num;
- struct geom area;
struct geom view; /* viewable area */
- struct geom work; /* workable area, gap-applied */
};
TAILQ_HEAD(region_ctx_q, region_ctx);
Index: screen.c
===================================================================
RCS file: /cvs/xenocara/app/cwm/screen.c,v
retrieving revision 1.79
diff -u -r1.79 screen.c
--- screen.c 11 Nov 2015 14:22:01 -0000 1.79
+++ screen.c 12 Dec 2015 17:28:03 -0000
@@ -142,12 +142,12 @@
screen_area(struct screen_ctx *sc, int x, int y, int flags)
{
struct region_ctx *rc;
- struct geom area = sc->work;
+ struct geom area = sc->view;
TAILQ_FOREACH(rc, &sc->regionq, entry) {
- if ((x >= rc->area.x) && (x < (rc->area.x + rc->area.w)) &&
- (y >= rc->area.y) && (y < (rc->area.y + rc->area.h))) {
- area = rc->area;
+ if ((x >= rc->view.x) && (x < (rc->view.x + rc->view.w)) &&
+ (y >= rc->view.y) && (y < (rc->view.y + rc->view.h))) {
+ area = rc->view;
break;
}
}
@@ -189,15 +189,10 @@
rc = xmalloc(sizeof(*rc));
rc->num = i;
- rc->area.x = ci->x;
- rc->area.y = ci->y;
- rc->area.w = ci->width;
- rc->area.h = ci->height;
rc->view.x = ci->x;
rc->view.y = ci->y;
rc->view.w = ci->width;
rc->view.h = ci->height;
- rc->work = screen_apply_gap(sc, rc->view);
TAILQ_INSERT_TAIL(&sc->regionq, rc, entry);
XRRFreeCrtcInfo(ci);
@@ -210,7 +205,6 @@
rc->view.y = 0;
rc->view.w = DisplayWidth(X_Dpy, sc->which);
rc->view.h = DisplayHeight(X_Dpy, sc->which);
- rc->work = screen_apply_gap(sc, rc->view);
TAILQ_INSERT_TAIL(&sc->regionq, rc, entry);
}