[gnome-shell/workspace-thumbnails: 3/13] Remove workspace indicators



commit 0bfa646aaa1d9635d4fd3fc5fb7be06340edf9f8
Author: Owen W. Taylor <otaylor fishsoup net>
Date:   Sun Jan 30 18:37:29 2011 -0500

    Remove workspace indicators
    
    Once we have workspace thumbnails in the overview, workspace indicators
    will no longer be needed.

 data/theme/gnome-shell.css |   14 ----
 js/ui/workspacesView.js    |  157 --------------------------------------------
 2 files changed, 0 insertions(+), 171 deletions(-)
---
diff --git a/data/theme/gnome-shell.css b/data/theme/gnome-shell.css
index d6616aa..f9d148a 100644
--- a/data/theme/gnome-shell.css
+++ b/data/theme/gnome-shell.css
@@ -260,20 +260,6 @@ StTooltip StLabel {
     spacing: 25px;
 }
 
-.workspace-indicator-panel {
-    spacing: 8px;
-}
-
-.workspace-indicator {
-    width: 24px;
-    height: 16px;
-    background: rgba(255,255,255,0.2);
-}
-
-.workspace-indicator.active {
-    background: rgba(255,255,255,0.8);
-}
-
 .workspace-controls {
     width: 48px;
     font-size: 32px;
diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js
index e39f282..262fef8 100644
--- a/js/ui/workspacesView.js
+++ b/js/ui/workspacesView.js
@@ -25,8 +25,6 @@ const WORKSPACE_DRAGGING_SCALE = 0.85;
 const CONTROLS_POP_IN_FRACTION = 0.8;
 const CONTROLS_POP_IN_TIME = 0.1;
 
-const INDICATOR_HOVER_SCALE = 1.1;
-
 
 function WorkspacesView(width, height, x, y, workspaces) {
     this._init(width, height, x, y, workspaces);
@@ -687,155 +685,6 @@ WorkspacesView.prototype = {
 Signals.addSignalMethods(WorkspacesView.prototype);
 
 
-function WorkspaceIndicatorPanel() {
-    this._init();
-}
-
-WorkspaceIndicatorPanel.prototype = {
-    _init: function() {
-        this.actor = new Shell.GenericContainer({ clip_to_allocation: true });
-        this.actor.connect('get-preferred-width', Lang.bind(this, this._getPreferredWidth));
-        this.actor.connect('get-preferred-height', Lang.bind(this, this._getPreferredHeight));
-        this.actor.connect('allocate', Lang.bind(this, this._allocate));
-
-        this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
-
-        this._box = new St.BoxLayout({ style_class: 'workspace-indicator-panel' });
-        this.actor.add_actor(this._box);
-
-        this._switchWorkspaceNotifyId =
-            global.window_manager.connect('switch-workspace',
-                                          Lang.bind(this, this._updateActive));
-    },
-
-    _onDestroy: function() {
-        if (this._switchWorkspaceNotifyId > 0)
-            global.window_manager.disconnect(this._switchWorkspaceNotifyId);
-        this._switchWorkspaceNotifyId = 0;
-        this._workspaces = null;
-    },
-
-    // Allocate the box centered to the available area like StBin would do,
-    // except that the full height is used even if the box is not actually
-    // shown. This is a workaround, as the size of the workspace area is
-    // determined once when entering the overview, so if it would take up
-    // the indicator space in that case, it would overlap it later when
-    // additional workspaces were added.
-    _allocate: function(actor, box, flags) {
-        let children = this._box.get_children();
-
-        let availWidth = box.x2 - box.x1;
-        let availHeight = box.y2 - box.y1;
-        let [minWidth, natWidth] = this._box.get_preferred_width(-1);
-        let [minHeight, natHeight] = this._box.get_preferred_height(-1);
-
-        let childBox = new Clutter.ActorBox();
-        childBox.x1 = Math.floor((availWidth - natWidth) / 2);
-        childBox.x2 = childBox.x1 + natWidth;
-        childBox.y1 = Math.floor((availHeight - natHeight) / 2);
-        childBox.y2 = childBox.y2 + natHeight;
-
-        this._box.allocate(childBox, flags);
-    },
-
-    _getPreferredWidth: function(actor, forHeight, alloc) {
-        let [minWidth, natWidth] = this._box.get_preferred_width(-1);
-        alloc.min_size = 0;
-        alloc.natural_size = natWidth;
-    },
-
-    _getPreferredHeight: function(actor, forWidth, alloc) {
-        let [minHeight, natHeight] = this._box.get_preferred_height(-1);
-        alloc.min_size = minHeight * INDICATOR_HOVER_SCALE;
-        alloc.natural_size = natHeight * INDICATOR_HOVER_SCALE;
-    },
-
-    updateWorkspaces: function(workspaces) {
-        this._workspaces = workspaces;
-
-        // Do not display a single indicator
-        if (this._workspaces.length == 1)
-            this.actor.set_skip_paint(this._box, true);
-        else
-            this.actor.set_skip_paint(this._box, false);
-
-        this._box.remove_all();
-        for (let i = 0; i < this._workspaces.length; i++) {
-            let actor = new St.Button({ style_class: 'workspace-indicator',
-                                        track_hover: true });
-            let workspace = this._workspaces[i];
-            let metaWorkspace = this._workspaces[i].metaWorkspace;
-
-            actor.connect('clicked', Lang.bind(this, function() {
-                metaWorkspace.activate(global.get_current_time());
-            }));
-            actor.connect('notify::hover', Lang.bind(this, function() {
-                if (actor.hover)
-                    actor.set_scale_with_gravity(INDICATOR_HOVER_SCALE,
-                                                 INDICATOR_HOVER_SCALE,
-                                                 Clutter.Gravity.CENTER);
-                else
-                    actor.set_scale(1.0, 1.0);
-            }));
-
-            actor._delegate = {
-                acceptDrop: Lang.bind(this,
-                    function(source, actor, x, y, time) {
-                        if (workspace.acceptDrop(source, actor, x, y, time)) {
-                            metaWorkspace.activate(time);
-                            return true;
-                        }
-                        return false;
-                    }),
-                handleDragOver: Lang.bind(this,
-                    function(source, actor, x, y, time) {
-                        return workspace.handleDragOver(source, actor, x, y, time);
-                    })
-            };
-
-            actor.connect('scroll-event', Lang.bind(this, this._onScrollEvent));
-
-            this._box.add(actor);
-        }
-
-        this._updateActive();
-    },
-
-    _updateActive: function() {
-        let children = this._box.get_children();
-        let activeIndex = global.screen.get_active_workspace_index();
-        for (let i = 0; i < children.length; i++) {
-            if (i == activeIndex)
-                children[i].add_style_class_name('active');
-            else
-                children[i].remove_style_class_name('active');
-        }
-    },
-
-    // handle scroll wheel events:
-    // activate the next or previous workspace and let the signal handler
-    // manage the animation
-    _onScrollEvent: function(actor, event) {
-        let direction = event.get_scroll_direction();
-        let current = global.screen.get_active_workspace_index();
-        let last = global.screen.n_workspaces - 1;
-        let activate = current;
-
-        let difference = direction == Clutter.ScrollDirection.UP ? -1 : 1;
-        if (St.Widget.get_default_direction() == St.TextDirection.RTL)
-            difference *= -1;
-
-        if (activate + difference >= 0 && activate + difference <= last)
-            activate += difference;
-
-        if (activate != current) {
-            let metaWorkspace = this._workspaces[activate].metaWorkspace;
-            metaWorkspace.activate(global.get_current_time());
-        }
-    }
-};
-
-
 function WorkspaceControlsContainer(controls) {
     this._init(controls);
 }
@@ -970,9 +819,6 @@ WorkspacesDisplay.prototype = {
         this._workspacesBin = new St.Bin();
         workspacesBox.add(this._workspacesBin, { expand: true });
 
-        this._workspaceIndicatorPanel = new WorkspaceIndicatorPanel();
-        workspacesBox.add(this._workspaceIndicatorPanel.actor);
-
         let controls = new St.BoxLayout({ vertical: true,
                                           style_class: 'workspace-controls' });
         this._controlsContainer = new WorkspaceControlsContainer(controls);
@@ -1047,8 +893,6 @@ WorkspacesDisplay.prototype = {
             this.workspacesView.destroy();
         this.workspacesView = newView;
 
-        this._workspaceIndicatorPanel.updateWorkspaces(this._workspaces);
-
         this._nWorkspacesNotifyId =
             global.screen.connect('notify::n-workspaces',
                                   Lang.bind(this, this._workspacesChanged));
@@ -1107,7 +951,6 @@ WorkspacesDisplay.prototype = {
         this.workspacesView.updateWorkspaces(oldNumWorkspaces,
                                              newNumWorkspaces,
                                              lostWorkspaces);
-        this._workspaceIndicatorPanel.updateWorkspaces(this._workspaces);
     }
 };
 Signals.addSignalMethods(WorkspacesDisplay.prototype);



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