[gnome-shell/wip/abono/maximize: 2/5] windowManager: Generalize translation values



commit f41b05b9ff3d2613619b05a3ec1e01169eaa163b
Author: Alessandro Bono <abono gnome org>
Date:   Sat May 20 16:34:35 2017 +0200

    windowManager: Generalize translation values
    
    Currently, the translation values are setted with the
    assumption that the sourceRect is a fullscreen window
    and the targetRect is the unfullscreen window (or
    vice versa). In order to generalize it, we translate
    the actor that represents the window in targetRect to
    match the position of the window in sourceRect.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766685

 js/ui/windowManager.js |   14 +++-----------
 1 files changed, 3 insertions(+), 11 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index b987467..944ab67 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1331,13 +1331,11 @@ const WindowManager = new Lang.Class({
         actorClone.set_size(oldFrameRect.width, oldFrameRect.height);
         Main.uiGroup.add_actor(actorClone);
 
-        let rect = change == Meta.SizeChange.FULLSCREEN ? oldFrameRect : null;
-
         if (this._clearFullscreenInfo(actor))
             this._shellwm.completed_size_change(actor);
 
         actor.__fullscreenInfo = { clone: actorClone,
-                                   oldRect: rect };
+                                   oldRect: oldFrameRect };
     },
 
     _sizeChangedWindow: function(shellwm, actor) {
@@ -1365,15 +1363,9 @@ const WindowManager = new Lang.Class({
                            transition: 'easeOutQuad'
                          });
 
-        let monitor = Main.layoutManager.monitors[actor.meta_window.get_monitor()];
         let sourceRect = actor.__fullscreenInfo.oldRect;
-        if (sourceRect) {
-            actor.translation_x = sourceRect.x - monitor.x;
-            actor.translation_y = sourceRect.y - monitor.y;
-        } else {
-            actor.translation_x = -(targetRect.x - monitor.x);
-            actor.translation_y = -(targetRect.y - monitor.y);
-        }
+        actor.translation_x = -(targetRect.x - sourceRect.x);
+        actor.translation_y = -(targetRect.y - sourceRect.y);
 
         // Now set scale the actor to size it as the clone.
         actor.scale_x = 1 / scaleX;


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