diff --git a/src/HotCorners/HotCorner.vala b/src/HotCorners/HotCorner.vala index 409f7afc..13450583 100644 --- a/src/HotCorners/HotCorner.vala +++ b/src/HotCorners/HotCorner.vala @@ -62,8 +62,8 @@ public class Gala.HotCorner : Object { private bool triggered = false; private uint32 triggered_time; - public HotCorner (Meta.Display display, float x, float y, string hot_corner_position) { - add_barriers (display, x, y, hot_corner_position); + public HotCorner (Meta.Display display, float x, float y, float scale, string hot_corner_position) { + add_barriers (display, x, y, scale, hot_corner_position); } public void destroy_barriers () { @@ -76,9 +76,9 @@ public class Gala.HotCorner : Object { } } - private void add_barriers (Meta.Display display, float x, float y, string hot_corner_position) { - var vrect = get_barrier_rect (x, y, hot_corner_position, Clutter.Orientation.VERTICAL); - var hrect = get_barrier_rect (x, y, hot_corner_position, Clutter.Orientation.HORIZONTAL); + private void add_barriers (Meta.Display display, float x, float y, float scale, string hot_corner_position) { + var vrect = get_barrier_rect (x, y, scale, hot_corner_position, Clutter.Orientation.VERTICAL); + var hrect = get_barrier_rect (x, y, scale, hot_corner_position, Clutter.Orientation.HORIZONTAL); var vdir = get_barrier_direction (hot_corner_position, Clutter.Orientation.VERTICAL); var hdir = get_barrier_direction (hot_corner_position, Clutter.Orientation.HORIZONTAL); @@ -107,9 +107,8 @@ public class Gala.HotCorner : Object { } } - private static Meta.Rectangle get_barrier_rect (float x, float y, string hot_corner_position, Clutter.Orientation orientation) { - var scale = InternalUtils.get_ui_scaling_factor (); - var barrier_size = BARRIER_SIZE * scale; + private static Meta.Rectangle get_barrier_rect (float x, float y, float scale, string hot_corner_position, Clutter.Orientation orientation) { + var barrier_size = InternalUtils.scale_to_int (BARRIER_SIZE, scale); int x1 = (int) x; int y1 = (int) y; diff --git a/src/HotCorners/HotCornerManager.vala b/src/HotCorners/HotCornerManager.vala index ff45c44b..b7aed8bd 100644 --- a/src/HotCorners/HotCornerManager.vala +++ b/src/HotCorners/HotCornerManager.vala @@ -40,13 +40,15 @@ public class Gala.HotCornerManager : Object { return; } - var geometry = display.get_monitor_geometry (display.get_primary_monitor ()); + var primary = display.get_primary_monitor (); + var geometry = display.get_monitor_geometry (primary); + var scale = display.get_monitor_scale (primary); remove_all_hot_corners (); - add_hotcorner (geometry.x, geometry.y, HotCorner.POSITION_TOP_LEFT); - add_hotcorner (geometry.x + geometry.width, geometry.y, HotCorner.POSITION_TOP_RIGHT); - add_hotcorner (geometry.x, geometry.y + geometry.height, HotCorner.POSITION_BOTTOM_LEFT); - add_hotcorner (geometry.x + geometry.width, geometry.y + geometry.height, HotCorner.POSITION_BOTTOM_RIGHT); + add_hotcorner (geometry.x, geometry.y, scale, HotCorner.POSITION_TOP_LEFT); + add_hotcorner (geometry.x + geometry.width, geometry.y, scale, HotCorner.POSITION_TOP_RIGHT); + add_hotcorner (geometry.x, geometry.y + geometry.height, scale, HotCorner.POSITION_BOTTOM_LEFT); + add_hotcorner (geometry.x + geometry.width, geometry.y + geometry.height, scale, HotCorner.POSITION_BOTTOM_RIGHT); this.on_configured (); } @@ -59,14 +61,14 @@ public class Gala.HotCornerManager : Object { hot_corners.remove_range (0, hot_corners.length); } - private void add_hotcorner (float x, float y, string hot_corner_position) { + private void add_hotcorner (float x, float y, float scale, string hot_corner_position) { var action_type = (ActionType) behavior_settings.get_enum (hot_corner_position); if (action_type == ActionType.NONE) { return; } unowned Meta.Display display = wm.get_display (); - var hot_corner = new HotCorner (display, (int) x, (int) y, hot_corner_position); + var hot_corner = new HotCorner (display, (int) x, (int) y, scale, hot_corner_position); hot_corner.trigger.connect (() => { if (action_type == ActionType.CUSTOM_COMMAND) {