summaryrefslogtreecommitdiff
path: root/mate-panel/panel-struts.c
diff options
context:
space:
mode:
authorVictor Kareh <[email protected]>2018-02-24 11:02:15 -0500
committerraveit65 <[email protected]>2018-03-13 08:55:39 +0100
commit3d153082f28d08a8e84eff597ebdd24bac10a0e1 (patch)
tree2ceb9860c12fbd11ee6f08b000f4a1467781230a /mate-panel/panel-struts.c
parent13940c6221d0eb062352d238a45b879e65116fc6 (diff)
downloadmate-panel-3d153082f28d08a8e84eff597ebdd24bac10a0e1.tar.bz2
mate-panel-3d153082f28d08a8e84eff597ebdd24bac10a0e1.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.c15
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 *