[gnome-shell] Don't proxy methods through overview; add a getWorkspacesForWindow()



commit 33f9895d7101bc5dc97d9bc4eafd3ee944a738a3
Author: Colin Walters <walters verbum org>
Date:   Fri Sep 11 12:47:53 2009 -0400

    Don't proxy methods through overview; add a getWorkspacesForWindow()
    
    Duplicating the methods was unnecessary.  Also, we want a getWorkspacesForWindow()
    method as preparation for multi-monitor work.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=594699

 js/ui/appDisplay.js |    7 ++++---
 js/ui/overview.js   |   37 ++++++++++++-------------------------
 js/ui/workspaces.js |   22 +++++++++++++++++++++-
 3 files changed, 37 insertions(+), 29 deletions(-)
---
diff --git a/js/ui/appDisplay.js b/js/ui/appDisplay.js
index 9caf834..9c20e5c 100644
--- a/js/ui/appDisplay.js
+++ b/js/ui/appDisplay.js
@@ -848,8 +848,8 @@ RunningWellItem.prototype = {
 
         if (this._menu == null) {
             this._menu = new WellMenu(this);
-            this._menu.connect('highlight-window', Lang.bind(this, function (menu, window) {
-                Main.overview.setHighlightWindow(window);
+            this._menu.connect('highlight-window', Lang.bind(this, function (menu, metaWindow) {
+                Main.overview.getWorkspacesForWindow(metaWindow).setHighlightWindow(metaWindow);
             }));
             this._menu.connect('popup', Lang.bind(this, function (menu, isPoppedUp) {
                 let id;
@@ -858,7 +858,8 @@ RunningWellItem.prototype = {
                     id = this.appInfo.get_id();
                 else
                     id = null;
-                Main.overview.setApplicationWindowSelection(id);
+
+                Main.overview.getWorkspacesForWindow(null).setApplicationWindowSelection(id);
             }));
         }
 
diff --git a/js/ui/overview.js b/js/ui/overview.js
index 326a86a..c8d2729 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -387,6 +387,18 @@ Overview.prototype = {
     },
 
     /**
+     * getWorkspacesForWindow:
+     * @metaWindow: A #MetaWindow
+     *
+     * Returns the Workspaces object associated with the given window.
+     * This method is not be accessible if the overview is not open
+     * and will return %null.
+     */
+    getWorkspacesForWindow: function(metaWindow) {
+        return this._workspaces;
+    },
+
+    /**
      * activateWindow:
      * @metaWindow: A #MetaWindow
      * @time: Event timestamp integer
@@ -401,31 +413,6 @@ Overview.prototype = {
          this.hide();
     },
 
-    /**
-     * setHighlightWindow:
-     * @metaWindow: A #MetaWindow
-     *
-     * Draw the user's attention to the given window @metaWindow.
-     */
-    setHighlightWindow: function (metaWindow) {
-        if (this._workspaces)
-            this._workspaces.setHighlightWindow(metaWindow);
-    },
-
-
-    /**
-     * setApplicationWindowSelection:
-     * @appid: Application identifier string
-     *
-     * Enter a mode which shows only the windows owned by the
-     * given application, and allow highlighting of a specific
-     * window with setHighlightWindow().
-     */
-    setApplicationWindowSelection: function (appid) {
-        if (this._workspaces)
-            this._workspaces.setApplicationWindowSelection(appid);
-    },
-
     //// Private methods ////
 
     _showDone: function() {
diff --git a/js/ui/workspaces.js b/js/ui/workspaces.js
index 3fcb601..d36366b 100644
--- a/js/ui/workspaces.js
+++ b/js/ui/workspaces.js
@@ -544,6 +544,13 @@ Workspace.prototype = {
         return -1;
     },
 
+    /**
+     * lookupCloneForMetaWindow:
+     * @metaWindow: A #MetaWindow
+     *
+     * Given a #MetaWindow instance, find the WindowClone object
+     * which represents it in the workspaces display.
+     */
     lookupCloneForMetaWindow: function (metaWindow) {
         let index = this._lookupIndex (metaWindow);
         return index < 0 ? null : this._windows[index];
@@ -573,6 +580,12 @@ Workspace.prototype = {
         }
     },
 
+    /**
+     * setHighlightWindow:
+     * @metaWindow: A #MetaWindow
+     *
+     * Draw the user's attention to the given window @metaWindow.
+     */
     setHighlightWindow: function (metaWindow) {
         for (let i = 0; i < this._windows.length; i++) {
             this._windows[i].actor.lower(this._lightbox);
@@ -1157,7 +1170,14 @@ Workspaces.prototype = {
         }
     },
 
-    // See comments in overview.js
+    /**
+     * setApplicationWindowSelection:
+     * @appid: Application identifier string
+     *
+     * Enter a mode which shows only the windows owned by the
+     * given application, and allow highlighting of a specific
+     * window with setHighlightWindow().
+     */
     setApplicationWindowSelection: function (appId) {
         let appSys = Shell.AppMonitor.get_default();
 



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