Update physical size on RRChangeNotifyEvent
Xrandr provides new physical sizes in millimeters when sending a RRChangeNotifyEvent, either to preserve DPI when monitors are added, or to change DPI when a DPI change was requested. Keep track of the changes so that our DPI information is always fresh.
This commit is contained in:
parent
5a914b3496
commit
c8bfbf5a3b
4
event.c
4
event.c
|
@ -816,10 +816,14 @@ event_handle_randr_screen_change_notify(xcb_randr_screen_change_notify_event_t *
|
||||||
/* Do (part of) what XRRUpdateConfiguration() would do (update our state) */
|
/* Do (part of) what XRRUpdateConfiguration() would do (update our state) */
|
||||||
if (ev->rotation & (XCB_RANDR_ROTATION_ROTATE_90 | XCB_RANDR_ROTATION_ROTATE_270)) {
|
if (ev->rotation & (XCB_RANDR_ROTATION_ROTATE_90 | XCB_RANDR_ROTATION_ROTATE_270)) {
|
||||||
globalconf.screen->width_in_pixels = ev->height;
|
globalconf.screen->width_in_pixels = ev->height;
|
||||||
|
globalconf.screen->width_in_millimeters = ev->mheight;
|
||||||
globalconf.screen->height_in_pixels = ev->width;
|
globalconf.screen->height_in_pixels = ev->width;
|
||||||
|
globalconf.screen->height_in_millimeters = ev->mwidth;
|
||||||
} else {
|
} else {
|
||||||
globalconf.screen->width_in_pixels = ev->width;
|
globalconf.screen->width_in_pixels = ev->width;
|
||||||
|
globalconf.screen->width_in_millimeters = ev->mwidth;
|
||||||
globalconf.screen->height_in_pixels = ev->height;
|
globalconf.screen->height_in_pixels = ev->height;
|
||||||
|
globalconf.screen->height_in_millimeters = ev->mheight;;
|
||||||
}
|
}
|
||||||
|
|
||||||
globalconf.screen_need_refresh = true;
|
globalconf.screen_need_refresh = true;
|
||||||
|
|
Loading…
Reference in New Issue