~ob/slock

7a604ec1fae1eda36f210a28a2cf466583a9cb87 — Bob Uhl 4 years ago fa11589
Fix resize with multiple monitors and portrait mode

When connecting/disconnecting a portrait monitor, the
XRRScreenChangeNotifyEvent height & width are reversed due to the XRandR
rotation; detect this and DTRT.
1 files changed, 7 insertions(+), 2 deletions(-)

M slock.c
M slock.c => slock.c +7 -2
@@ 201,8 201,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
			rre = (XRRScreenChangeNotifyEvent*)&ev;
			for (screen = 0; screen < nscreens; screen++) {
				if (locks[screen]->win == rre->window) {
					XResizeWindow(dpy, locks[screen]->win,
					              rre->width, rre->height);
					if (rre->rotation == RR_Rotate_90 ||
					    rre->rotation == RR_Rotate_270)
						XResizeWindow(dpy, locks[screen]->win,
						              rre->height, rre->width);
					else
						XResizeWindow(dpy, locks[screen]->win,
						              rre->width, rre->height);
					XClearWindow(dpy, locks[screen]->win);
				}
			}