[gnome-shell] sessionMode: Add hasOverview property



commit 122bca49ea99f3102a140d14a27d9c0b69564b86
Author: Florian MÃllner <fmuellner gnome org>
Date:   Thu May 17 00:59:02 2012 +0200

    sessionMode: Add hasOverview property
    
    Add a sessionMode.hasOverview property, which determines whether
    the mode should give access to the overview or not.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=676156

 js/ui/main.js        |   20 +++++++++++---------
 js/ui/overview.js    |    6 ++----
 js/ui/panel.js       |    4 +++-
 js/ui/sessionMode.js |    6 ++++--
 4 files changed, 20 insertions(+), 16 deletions(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index b91ee41..247200a 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -142,13 +142,6 @@ function _initUserSession() {
     Meta.keybindings_set_custom_handler('panel-run-dialog', function() {
        getRunDialog().open();
     });
-
-    Meta.keybindings_set_custom_handler('panel-main-menu', function () {
-        overview.toggle();
-    });
-
-    global.display.connect('overlay-key', Lang.bind(overview, overview.toggle));
-
 }
 
 function start() {
@@ -212,8 +205,7 @@ function start() {
     layoutManager = new Layout.LayoutManager();
     xdndHandler = new XdndHandler.XdndHandler();
     ctrlAltTabManager = new CtrlAltTab.CtrlAltTabManager();
-    // This overview object is just a stub for non-user sessions
-    overview = new Overview.Overview({ isDummy: sessionMode.sessionType != Shell.SessionType.USER });
+    overview = new Overview.Overview();
     magnifier = new Magnifier.Magnifier();
     statusIconDispatcher = new StatusIconDispatcher.StatusIconDispatcher();
     panel = new Panel.Panel();
@@ -236,6 +228,16 @@ function start() {
 
     if (sessionMode.sessionType == Shell.SessionType.USER)
         _initUserSession();
+
+    if (sessionMode.hasOverview) {
+        Meta.keybindings_set_custom_handler('panel-main-menu', function () {
+            overview.toggle();
+        });
+
+        global.display.connect('overlay-key',
+                               Lang.bind(overview, overview.toggle));
+    }
+
     statusIconDispatcher.start(messageTray.actor);
 
     // Provide the bus object for gnome-session to
diff --git a/js/ui/overview.js b/js/ui/overview.js
index c1a4d5c..59dc71c 100644
--- a/js/ui/overview.js
+++ b/js/ui/overview.js
@@ -99,10 +99,8 @@ const ShellInfo = new Lang.Class({
 const Overview = new Lang.Class({
     Name: 'Overview',
 
-    _init : function(params) {
-        params = Params.parse(params, { isDummy: false });
-
-        this.isDummy = params.isDummy;
+    _init : function() {
+        this.isDummy = !Main.sessionMode.hasOverview;
 
         // We only have an overview in user sessions, so
         // create a dummy overview in other cases
diff --git a/js/ui/panel.js b/js/ui/panel.js
index ab00237..45aabb2 100644
--- a/js/ui/panel.js
+++ b/js/ui/panel.js
@@ -962,7 +962,7 @@ const Panel = new Lang.Class({
         this.actor.connect('button-press-event', Lang.bind(this, this._onButtonPress));
 
         /* Button on the left side of the panel. */
-        if (Main.sessionMode.sessionType == Shell.SessionType.USER) {
+        if (Main.sessionMode.hasOverview) {
             this._activitiesButton = new ActivitiesButton();
             this._activities = this._activitiesButton.actor;
             this._leftBox.add(this._activities);
@@ -970,7 +970,9 @@ const Panel = new Lang.Class({
             // The activities button has a pretend menu, so as to integrate
             // more cleanly with the rest of the panel
             this._menus.addMenu(this._activitiesButton.menu);
+        }
 
+        if (Main.sessionMode.sessionType == Shell.SessionType.USER) {
             this._appMenu = new AppMenuButton(this._menus);
             this._leftBox.add(this._appMenu.actor);
         }
diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
index 1ed5aaa..3ab89c1 100644
--- a/js/ui/sessionMode.js
+++ b/js/ui/sessionMode.js
@@ -8,9 +8,11 @@ const Params = imports.misc.params;
 const DEFAULT_MODE = 'user';
 
 const _modes = {
-    'gdm': { sessionType: Shell.SessionType.GDM },
+    'gdm': { hasOverview: false,
+             sessionType: Shell.SessionType.GDM },
 
-    'user': { sessionType: Shell.SessionType.USER }
+    'user': { hasOverview: true,
+              sessionType: Shell.SessionType.USER }
 };
 
 function modeExists(mode) {



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