[gnome-shell] sessionMode: Add stylesheetName property



commit fcc32fca7eff7939d75a4f7e3993aca6d85e987e
Author: Florian MÃllner <fmuellner gnome org>
Date:   Tue Feb 5 04:13:44 2013 +0100

    sessionMode: Add stylesheetName property
    
    This will allow to visually differentiate modes by providing
    separate styling.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=693219

 js/ui/main.js        |   17 +++++++++++++++--
 js/ui/sessionMode.js |    1 +
 2 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/js/ui/main.js b/js/ui/main.js
index 7d7d063..5a6ab0b 100644
--- a/js/ui/main.js
+++ b/js/ui/main.js
@@ -95,6 +95,8 @@ function start() {
     Gio.DesktopAppInfo.set_desktop_env('GNOME');
 
     sessionMode = new SessionMode.SessionMode();
+    sessionMode.connect('updated', _loadDefaultStylesheet);
+
     shellDBusService = new ShellDBus.GnomeShell();
     shellMountOpDBusService = new ShellMountOperation.GnomeShellMountOpHandler();
 
@@ -117,8 +119,7 @@ function start() {
     global.stage.color = DEFAULT_BACKGROUND_COLOR;
     global.stage.no_clear_hint = true;
 
-    _defaultCssStylesheet = global.datadir + '/theme/gnome-shell.css';
-    loadTheme();
+    _loadDefaultStylesheet();
 
     // Set up stage hierarchy to group all UI actors under one container.
     uiGroup = new Shell.GenericContainer({ name: 'uiGroup' });
@@ -379,6 +380,18 @@ function _nWorkspacesChanged() {
     return false;
 }
 
+function _loadDefaultStylesheet() {
+    if (!Main.sessionMode.isPrimary)
+        return;
+
+    let stylesheet = global.datadir + '/theme/' + sessionMode.stylesheetName;
+    if (_defaultCssStylesheet == stylesheet)
+        return;
+
+    _defaultCssStylesheet = stylesheet;
+    loadTheme();
+}
+
 /**
  * getThemeStylesheet:
  *
diff --git a/js/ui/sessionMode.js b/js/ui/sessionMode.js
index 2774ad6..f802dbd 100644
--- a/js/ui/sessionMode.js
+++ b/js/ui/sessionMode.js
@@ -15,6 +15,7 @@ const DEFAULT_MODE = 'restrictive';
 const _modes = {
     'restrictive': {
         parentMode: null,
+        stylesheetName: 'gnome-shell.css',
         hasOverview: false,
         showCalendarEvents: false,
         allowSettings: false,



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