diff options
author | Andrea Azzarone <azzaronea@gmail.com> | 2016-07-30 17:33:40 +0200 |
---|---|---|
committer | Iain Lane <iain@orangesquash.org.uk> | 2016-08-01 18:00:08 +0100 |
commit | 315a55df33e9077d9d1f923306b12c9657d1599b (patch) | |
tree | 82bd1ff64f255955cd372dbed9eace10092e793b | |
parent | da85fcebaee5bababc270643d7931ea264f22d03 (diff) | |
download | nautilus-315a55df33e9077d9d1f923306b12c9657d1599b.tar.gz |
desktop-canvas-view: scale desktop workarea
The problem is that in the function canvas_container_set_workarea the screen width
and height are in "application pixels" while the workarea ones are in "device
pixels" so when the scaling is > 1, the margins are not properly setted.
We need to scale-down the workarea geometries to "application pixels".
https://bugzilla.gnome.org/show_bug.cgi?id=769302
-rw-r--r-- | nautilus-desktop/nautilus-desktop-canvas-view.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/nautilus-desktop/nautilus-desktop-canvas-view.c b/nautilus-desktop/nautilus-desktop-canvas-view.c index 1bb505253..4aa618aed 100644 --- a/nautilus-desktop/nautilus-desktop-canvas-view.c +++ b/nautilus-desktop/nautilus-desktop-canvas-view.c @@ -87,6 +87,7 @@ canvas_container_set_workarea (NautilusCanvasContainer *canvas_container, { int left, right, top, bottom; int screen_width, screen_height; + int scale; int i; left = right = top = bottom = 0; @@ -94,11 +95,14 @@ canvas_container_set_workarea (NautilusCanvasContainer *canvas_container, screen_width = gdk_screen_get_width (screen); screen_height = gdk_screen_get_height (screen); + scale = gdk_window_get_scale_factor (gdk_screen_get_root_window (screen)); + scale = scale ? scale : 1; + for (i = 0; i < n_items; i += 4) { - int x = workareas [i]; - int y = workareas [i + 1]; - int width = workareas [i + 2]; - int height = workareas [i + 3]; + int x = workareas [i] / scale; + int y = workareas [i + 1] / scale; + int width = workareas [i + 2] / scale; + int height = workareas [i + 3] / scale; if ((x + width) > screen_width || (y + height) > screen_height) continue; |