aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--calmwm.c17
-rw-r--r--calmwm.h3
-rw-r--r--screen.c10
-rw-r--r--xevents.c3
4 files changed, 16 insertions, 17 deletions
diff --git a/calmwm.c b/calmwm.c
index 77af7a8..53f1896 100644
--- a/calmwm.c
+++ b/calmwm.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: calmwm.c,v 1.62 2012/07/05 17:35:13 okan Exp $
+ * $OpenBSD: calmwm.c,v 1.63 2012/07/06 14:18:00 okan Exp $
*/
#include <sys/param.h>
@@ -97,7 +97,7 @@ main(int argc, char **argv)
static void
dpy_init(const char *dpyname)
{
- int i;
+ int i, fake;
XSetErrorHandler(x_errorhandler);
@@ -110,6 +110,9 @@ dpy_init(const char *dpyname)
XSync(X_Dpy, False);
XSetErrorHandler(x_errorhandler);
+ if (XineramaQueryExtension(X_Dpy, &fake, &fake) == 1 &&
+ ((HasXinerama = XineramaIsActive(X_Dpy)) == 1))
+ HasXinerama = 1;
HasRandr = XRRQueryExtension(X_Dpy, &Randr_ev, &i);
}
@@ -157,7 +160,6 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
Window *wins, w0, w1;
XWindowAttributes winattr;
XSetWindowAttributes rootattr;
- int fake;
u_int nwins, i;
sc->which = which;
@@ -201,17 +203,8 @@ x_setupscreen(struct screen_ctx *sc, u_int which)
screen_updatestackingorder(sc);
- if (XineramaQueryExtension(X_Dpy, &fake, &fake) == 1 &&
- ((HasXinerama = XineramaIsActive(X_Dpy)) == 1))
- HasXinerama = 1;
if (HasRandr)
XRRSelectInput(X_Dpy, sc->rootwin, RRScreenChangeNotifyMask);
- /*
- * initial setup of xinerama screens, if we're using RandR then we'll
- * redo this whenever the screen changes since a CTRC may have been
- * added or removed
- */
- screen_init_xinerama(sc);
XSync(X_Dpy, False);
}
diff --git a/calmwm.h b/calmwm.h
index db595fe..3383663 100644
--- a/calmwm.h
+++ b/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.148 2012/07/05 17:35:13 okan Exp $
+ * $OpenBSD: calmwm.h,v 1.149 2012/07/06 14:18:00 okan Exp $
*/
#ifndef _CALMWM_H_
@@ -360,7 +360,6 @@ void search_print_client(struct menu *, int);
XineramaScreenInfo *screen_find_xinerama(struct screen_ctx *, int, int);
struct screen_ctx *screen_fromroot(Window);
-void screen_init_xinerama(struct screen_ctx *);
void screen_update_geometry(struct screen_ctx *);
void screen_updatestackingorder(struct screen_ctx *);
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 <sys/param.h>
@@ -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);
}
diff --git a/xevents.c b/xevents.c
index 4c2c848..9480c7d 100644
--- a/xevents.c
+++ b/xevents.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: xevents.c,v 1.62 2012/07/05 17:35:13 okan Exp $
+ * $OpenBSD: xevents.c,v 1.63 2012/07/06 14:18:00 okan Exp $
*/
/*
@@ -366,7 +366,6 @@ xev_handle_randr(XEvent *ee)
if (sc->which == (u_int)i) {
XRRUpdateConfiguration(ee);
screen_update_geometry(sc);
- screen_init_xinerama(sc);
}
}
}