diff options
author | Victor Kareh <[email protected]> | 2018-02-24 11:02:15 -0500 |
---|---|---|
committer | Victor Kareh <[email protected]> | 2018-02-24 11:02:15 -0500 |
commit | 87a376956154563d72192f74608b46622aaa753a (patch) | |
tree | 7db3d964f09b417de76b1cba72b14ce4871cc164 /mate-panel/panel-struts.c | |
parent | b08bc130853b2f737eb47113357513f5e937eb47 (diff) | |
download | mate-panel-87a376956154563d72192f74608b46622aaa753a.tar.bz2 mate-panel-87a376956154563d72192f74608b46622aaa753a.tar.xz |
Scale monitor geometries down to device pixels to support multiple monitors in HiDPI
Diffstat (limited to 'mate-panel/panel-struts.c')
-rw-r--r-- | mate-panel/panel-struts.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/mate-panel/panel-struts.c b/mate-panel/panel-struts.c index d59587e5..f702f565 100644 --- a/mate-panel/panel-struts.c +++ b/mate-panel/panel-struts.c @@ -75,10 +75,17 @@ panel_struts_get_monitor_geometry (GdkScreen *screen, int *width, int *height) { - *x = panel_multiscreen_x (screen, monitor); - *y = panel_multiscreen_y (screen, monitor); - *width = panel_multiscreen_width (screen, monitor); - *height = panel_multiscreen_height (screen, monitor); + GdkDisplay *display; + int scale; + + /* Use scale factor to bring strut dimensions up to application pixels to support HiDPI displays */ + display = gdk_screen_get_display (screen); + scale = gdk_monitor_get_scale_factor (gdk_display_get_monitor (display, monitor)); + + *x = panel_multiscreen_x (screen, monitor) * scale; + *y = panel_multiscreen_y (screen, monitor) * scale; + *width = panel_multiscreen_width (screen, monitor) * scale; + *height = panel_multiscreen_height (screen, monitor) * scale; } static PanelStrut * |