[gnome-shell] WindowManager: WORKAROUND: disable dimming in the overview



commit 3a26f7f4d5699848e248e35f4f82760ca36db819
Author: Giovanni Campagna <gcampagna src gnome org>
Date:   Sun Jan 19 16:12:15 2014 +0100

    WindowManager: WORKAROUND: disable dimming in the overview
    
    Clones and effects don't mix, due to a bug in Clutter we don't
    know how to fix, and sometimes the clone is clipped completely.
    As a workaround, undim windows with dialogs in the overview.
    
    Clutter bug: https://bugzilla.gnome.org/show_bug.cgi?id=659523
    
    https://bugzilla.gnome.org/show_bug.cgi?id=650843

 js/ui/windowManager.js      |    9 +++++++++
 js/ui/workspace.js          |   14 --------------
 js/ui/workspaceThumbnail.js |   14 --------------
 3 files changed, 9 insertions(+), 28 deletions(-)
---
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index 6ae0ad7..4c7cac4 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -569,6 +569,15 @@ const WindowManager = new Lang.Class({
                            Shell.KeyBindingMode.TOPBAR_POPUP,
                            Lang.bind(this, this._toggleAppMenu));
 
+        Main.overview.connect('showing', Lang.bind(this, function() {
+            for (let i = 0; i < this._dimmedWindows.length; i++)
+                this._undimWindow(this._dimmedWindows[i]);
+        }));
+        Main.overview.connect('hiding', Lang.bind(this, function() {
+            for (let i = 0; i < this._dimmedWindows.length; i++)
+                this._dimWindow(this._dimmedWindows[i]);
+        }));
+
         if (Main.sessionMode.hasWorkspaces)
             this._workspaceTracker = new WorkspaceTracker(this);
 
diff --git a/js/ui/workspace.js b/js/ui/workspace.js
index 6454237..65aef36 100644
--- a/js/ui/workspace.js
+++ b/js/ui/workspace.js
@@ -194,7 +194,6 @@ const WindowClone = new Lang.Class({
     addAttachedDialog: function(win) {
         this._doAddAttachedDialog(win, win.get_compositor_private());
         this._computeBoundingBox();
-        this._updateDimmer();
         this.emit('size-changed');
     },
 
@@ -208,7 +207,6 @@ const WindowClone = new Lang.Class({
             clone.destroy();
 
             this._computeBoundingBox();
-            this._updateDimmer();
             this.emit('size-changed');
         }));
         this.actor.add_child(clone);
@@ -228,18 +226,6 @@ const WindowClone = new Lang.Class({
             return true;
         });
         this.metaWindow.foreach_transient(iter);
-
-        this._dimmer = new WindowManager.WindowDimmer(this._windowClone);
-        this._updateDimmer();
-    },
-
-    _updateDimmer: function() {
-        if (this.actor.get_n_children() > 1) {
-            this._dimmer.setEnabled(true);
-            this._dimmer.dimFactor = 1.0;
-        } else {
-            this._dimmer.setEnabled(false);
-        }
     },
 
     get boundingBox() {
diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js
index 7fc37c8..f51b1fa 100644
--- a/js/ui/workspaceThumbnail.js
+++ b/js/ui/workspaceThumbnail.js
@@ -106,9 +106,6 @@ const WindowClone = new Lang.Class({
             return true;
         });
         this.metaWindow.foreach_transient(iter);
-
-        this._dimmer = new WindowManager.WindowDimmer(this.clone);
-        this._updateDimmer();
     },
 
     // Find the actor just below us, respecting reparenting done
@@ -148,7 +145,6 @@ const WindowClone = new Lang.Class({
 
     addAttachedDialog: function(win) {
         this._doAddAttachedDialog(win, win.get_compositor_private());
-        this._updateDimmer();
     },
 
     _doAddAttachedDialog: function(metaDialog, realDialog) {
@@ -159,20 +155,10 @@ const WindowClone = new Lang.Class({
                                              Lang.bind(this, this._updateDialogPosition, clone));
         clone._destroyId = realDialog.connect('destroy', Lang.bind(this, function() {
             clone.destroy();
-            this._updateDimmer();
         }));
         this.actor.add_child(clone);
     },
 
-    _updateDimmer: function() {
-        if (this.actor.get_n_children() > 1) {
-            this._dimmer.setEnabled(true);
-            this._dimmer.dimFactor = 1.0;
-        } else {
-            this._dimmer.setEnabled(false);
-        }
-    },
-
     _updateDialogPosition: function(realDialog, cloneDialog) {
         let metaDialog = realDialog.meta_window;
         let dialogRect = metaDialog.get_outer_rect();


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