Fix resize with multiple monitors and portrait mode - slock - simple X display … | |
git clone git://git.suckless.org/slock | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 7a604ec1fae1eda36f210a28a2cf466583a9cb87 | |
parent fa1158958466f38cd35c9114023a0175e67ebb6f | |
Author: Bob Uhl <[email protected]> | |
Date: Mon, 7 Nov 2016 10:15:20 -0700 | |
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. | |
Diffstat: | |
M slock.c | 9 +++++++-- | |
1 file changed, 7 insertions(+), 2 deletions(-) | |
--- | |
diff --git a/slock.c b/slock.c | |
@@ -201,8 +201,13 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **lock… | |
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[scree… | |
+ rre->height, rre… | |
+ else | |
+ XResizeWindow(dpy, locks[scree… | |
+ rre->width, rre-… | |
XClearWindow(dpy, locks[screen]->win); | |
} | |
} |