Fix resize with multiple monitors and portrait mode - slock - simple X display locker utility
 (HTM) git clone git://git.suckless.org/slock
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 7a604ec1fae1eda36f210a28a2cf466583a9cb87
 (DIR) parent fa1158958466f38cd35c9114023a0175e67ebb6f
 (HTM) Author: Bob Uhl <buhl@zvelo.com>
       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(-)
       ---
 (DIR) diff --git a/slock.c b/slock.c
       @@ -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);
                                        }
                                }