[gnome-shell] Constrain zoomed overview windows to the current monitor



commit df440496eeb6547e32eec4f102334f4836eb1a7e
Author: Alexander Larsson <alexl redhat com>
Date:   Wed Mar 9 15:59:58 2011 +0100

    Constrain zoomed overview windows to the current monitor
    
    Additionally, the constraint to not overlap the panel should only happen
    on the primary monitor.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=609258

 js/ui/workspace.js |   11 +++++++++--
 1 files changed, 9 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index 05a22f7..974893a 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -221,8 +221,15 @@ WindowClone.prototype = {
 
         let [width, height] = this.actor.get_transformed_size();
 
-        this.actor.x = _clamp(this.actor.x, 0, global.screen_width  - width);
-        this.actor.y = _clamp(this.actor.y, Main.panel.actor.height, global.screen_height - height);
+        let monitorIndex = this.metaWindow.get_monitor();
+        let availArea = global.get_monitors()[monitorIndex];
+        if (monitorIndex == global.get_primary_monitor_index()) {
+            availArea.y += Main.panel.actor.height;
+            availArea.height -= Main.panel.actor.height;
+        }
+
+        this.actor.x = _clamp(this.actor.x, availArea.x, availArea.x + availArea.width - width);
+        this.actor.y = _clamp(this.actor.y, availArea.y, availArea.y + availArea.height - height);
     },
 
     _zoomStart : function () {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]