diff options
author | Victor Kareh <[email protected]> | 2018-02-24 11:02:15 -0500 |
---|---|---|
committer | raveit65 <[email protected]> | 2018-03-13 08:55:39 +0100 |
commit | 3d153082f28d08a8e84eff597ebdd24bac10a0e1 (patch) | |
tree | 2ceb9860c12fbd11ee6f08b000f4a1467781230a /mate-panel/panel-struts.c | |
parent | 13940c6221d0eb062352d238a45b879e65116fc6 (diff) | |
download | mate-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.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 * |