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.
This commit is contained in:
		
							parent
							
								
									fa11589584
								
							
						
					
					
						commit
						7a604ec1fa
					
				
							
								
								
									
										5
									
								
								slock.c
								
								
								
								
							
							
						
						
									
										5
									
								
								slock.c
								
								
								
								
							| 
						 | 
					@ -201,6 +201,11 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
 | 
				
			||||||
			rre = (XRRScreenChangeNotifyEvent*)&ev;
 | 
								rre = (XRRScreenChangeNotifyEvent*)&ev;
 | 
				
			||||||
			for (screen = 0; screen < nscreens; screen++) {
 | 
								for (screen = 0; screen < nscreens; screen++) {
 | 
				
			||||||
				if (locks[screen]->win == rre->window) {
 | 
									if (locks[screen]->win == rre->window) {
 | 
				
			||||||
 | 
										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,
 | 
											XResizeWindow(dpy, locks[screen]->win,
 | 
				
			||||||
						              rre->width, rre->height);
 | 
											              rre->width, rre->height);
 | 
				
			||||||
					XClearWindow(dpy, locks[screen]->win);
 | 
										XClearWindow(dpy, locks[screen]->win);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue