summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--xevents.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/xevents.c b/xevents.c
index b0822f7..13d6675 100644
--- a/xevents.c
+++ b/xevents.c
@@ -358,15 +358,17 @@ void
 xev_handle_randr(struct xevent *xev, XEvent *ee)
 {
 	XRRScreenChangeNotifyEvent	*rev = (XRRScreenChangeNotifyEvent *)ee;
-	struct client_ctx		*cc;
 	struct screen_ctx		*sc;
-
-	if ((cc = client_find(rev->window)) != NULL) {
-		XRRUpdateConfiguration(ee);
-		sc = CCTOSC(cc);
-		sc->xmax = rev->width;
-		sc->ymax = rev->height;
-		screen_init_xinerama(sc);
+	int				 i;
+
+	i = XRRRootToScreen(X_Dpy, rev->root);
+	TAILQ_FOREACH(sc, &Screenq, entry) {
+		if (sc->which == (u_int)i) {
+			XRRUpdateConfiguration(ee);
+			sc->xmax = rev->width;
+			sc->ymax = rev->height;
+			screen_init_xinerama(sc);
+		}
 	}
 }