From 63bf350855eb2035f8b2451457f93e86b0b7735d Mon Sep 17 00:00:00 2001 From: okan Date: Fri, 6 Jul 2012 14:18:00 +0000 Subject: querying for Xinerama should be done per display, not per screen, so move chuck to display init; allows some shuffling to occur limiting screen_init_xinerama()'s scope while keeping order intact. --- screen.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'screen.c') diff --git a/screen.c b/screen.c index 71c3372..def241d 100644 --- a/screen.c +++ b/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.30 2012/07/05 17:35:13 okan Exp $ + * $OpenBSD: screen.c,v 1.31 2012/07/06 14:18:00 okan Exp $ */ #include @@ -30,6 +30,8 @@ #include "calmwm.h" +static void screen_init_xinerama(struct screen_ctx *); + struct screen_ctx * screen_fromroot(Window rootwin) { @@ -65,6 +67,10 @@ screen_updatestackingorder(struct screen_ctx *sc) XFree(wins); } +/* + * If we're using RandR then we'll redo this whenever the screen + * changes since a CTRC may have been added or removed + */ void screen_init_xinerama(struct screen_ctx *sc) { @@ -114,6 +120,8 @@ screen_update_geometry(struct screen_ctx *sc) sc->xmax = DisplayWidth(X_Dpy, sc->which); sc->ymax = DisplayHeight(X_Dpy, sc->which); + screen_init_xinerama(sc); + xu_ewmh_net_desktop_geometry(sc); xu_ewmh_net_workarea(sc); } -- cgit v1.2.3-2-gb3c3