File gse-sle-classic-ext.patch of Package gnome-shell-extensions

Index: gnome-shell-extensions-41.0/extensions/window-list/extension.js
===================================================================
--- gnome-shell-extensions-41.0.orig/extensions/window-list/extension.js
+++ gnome-shell-extensions-41.0/extensions/window-list/extension.js
@@ -177,6 +177,9 @@ class WindowTitle extends St.BoxLayout {
     }
 });
 
+function isSLEClassicMode() {
+    return Main.sessionMode.currentMode == "sle-classic" ? true : false;
+}
 
 const BaseButton = GObject.registerClass({
     GTypeFlags: GObject.TypeFlags.ABSTRACT,
@@ -691,11 +694,13 @@ class WindowList extends St.Widget {
         let box = new St.BoxLayout({ x_expand: true, y_expand: true });
         this.add_actor(box);
 
-        let toggle = new WindowPickerToggle();
-        box.add_actor(toggle);
+        if (!isSLEClassicMode()) {
+            let toggle = new WindowPickerToggle();
+            box.add_actor(toggle);
 
-        toggle.connect('notify::checked',
-            this._updateWindowListVisibility.bind(this));
+            toggle.connect('notify::checked',
+                this._updateWindowListVisibility.bind(this));
+        }
 
         let layout = new Clutter.BoxLayout({ homogeneous: true });
         this._windowList = new St.Widget({
@@ -733,6 +738,7 @@ class WindowList extends St.Widget {
         this._menuManager = new PopupMenu.PopupMenuManager(this);
         this._menuManager.addMenu(this._workspaceIndicator.menu);
 
+        if (!isSLEClassicMode()) {
         Main.layoutManager.addChrome(this, {
             affectsStruts: true,
             trackFullscreen: true,
@@ -743,6 +749,7 @@ class WindowList extends St.Widget {
         this.width = this._monitor.width;
         this.connect('notify::height', this._updatePosition.bind(this));
         this._updatePosition();
+        }
 
         this._appSystem = Shell.AppSystem.get_default();
         this._appStateChangedId = this._appSystem.connect(
@@ -839,7 +846,8 @@ class WindowList extends St.Widget {
         let workspacesOnMonitor = this._monitor === Main.layoutManager.primaryMonitor ||
                                   !this._mutterSettings.get_boolean('workspaces-only-on-primary');
 
-        this._workspaceIndicator.visible = hasWorkspaces && workspacesOnMonitor;
+        if (this._workspaceIndicator != null)
+            this._workspaceIndicator.visible = hasWorkspaces && workspacesOnMonitor;
     }
 
     _updateWindowListVisibility() {
@@ -875,6 +883,9 @@ class WindowList extends St.Widget {
     }
 
     _getMaxWindowListWidth() {
+        if (this._workspaceIndicator == null)
+            return this.width;
+
         let indicatorsBox = this._workspaceIndicator.get_parent();
         return this.width - indicatorsBox.get_preferred_width(-1)[1];
     }
@@ -1075,7 +1086,8 @@ class WindowList extends St.Widget {
         this._mutterSettings.disconnect(this._workspacesOnlyOnPrimaryChangedId);
         this._mutterSettings.disconnect(this._dynamicWorkspacesChangedId);
 
-        this._workspaceIndicator.destroy();
+        if (this._workspaceIndicator != null)
+            this._workspaceIndicator.destroy();
 
         Main.ctrlAltTabManager.removeGroup(this);
 
@@ -1116,6 +1128,7 @@ class Extension {
 
         this._windowLists = null;
         this._hideOverviewOrig = Main.overview.hide;
+        this._isSLEClassic = isSLEClassicMode();
     }
 
     enable() {
@@ -1135,19 +1148,51 @@ class Extension {
             this._hideOverviewOrig.call(Main.overview);
         };
 
+        if (isSLEClassicMode()) {
+            this.overviewShowingId = Main.overview.connect('showing', () => {
+                Main.panel._centerBox.hide(); });
+            this.overviewHidingId = Main.overview.connect('hiding', () => {
+                Main.panel._centerBox.show(); });
+
+            Main.sessionMode.hasOverview = false;
+            Main.layoutManager.connect('startup-complete', () => {
+                Main.sessionMode.hasOverview = true;
+            });
+        }
+
         this._buildWindowLists();
     }
 
     _buildWindowLists() {
-        this._windowLists.forEach(list => list.destroy());
+        this._windowLists.forEach(list => {
+            if (isSLEClassicMode()) {
+                Main.panel._centerBox.remove_child(list._windowList);
+                let [box] = list.get_children();
+                box.add_child(list._windowList);
+            }
+
+            list.destroy();
+        });
         this._windowLists = [];
 
         let showOnAllMonitors = this._settings.get_boolean('show-on-all-monitors');
 
-        Main.layoutManager.monitors.forEach(monitor => {
-            if (showOnAllMonitors || monitor === Main.layoutManager.primaryMonitor)
+        if (isSLEClassicMode()){
+            let list = new WindowList(false, Main.layoutManager.primaryMonitor);
+            list._workspaceIndicator.destroy();
+            list._workspaceIndicator = null;
+
+            let [box] = list.get_children();
+            box.remove_child(list._windowList);
+            Main.panel._centerBox.add_child(list._windowList);
+
+            this._windowLists.push(list);
+        } else {
+            Main.layoutManager.monitors.forEach(monitor => {
+                if (showOnAllMonitors || monitor == Main.layoutManager.primaryMonitor)
                 this._windowLists.push(new WindowList(showOnAllMonitors, monitor));
-        });
+            });
+        }
     }
 
     disable() {
@@ -1161,6 +1206,11 @@ class Extension {
         this._monitorsChangedId = 0;
 
         this._windowLists.forEach(windowList => {
+            if (this._isSLEClassic) {
+                Main.panel._centerBox.remove_child(windowList._windowList);
+                let [box] = windowList.get_children();
+                box.add_child(windowList._windowList);
+            }
             windowList.hide();
             windowList.destroy();
         });
@@ -1169,6 +1219,11 @@ class Extension {
         Main.windowPicker.destroy();
         delete Main.windowPicker;
 
+        if (this._isSLEClassic) {
+            Main.overview.disconnect(this.overviewShowingId);
+            Main.overview.disconnect(this.overviewHidingId);
+        }
+
         Main.overview.hide = this._hideOverviewOrig;
     }
 
Index: gnome-shell-extensions-41.0/extensions/window-list/sle-classic.css
===================================================================
--- /dev/null
+++ gnome-shell-extensions-41.0/extensions/window-list/sle-classic.css
@@ -0,0 +1,46 @@
+@import url("stylesheet.css");
+
+#panel.bottom-panel {
+    border-top-width: 1px;
+    border-bottom-width: 0px;
+    height: 2.25em ;
+  }
+
+ .window-button > StWidget {
+    background-gradient-drection: vertical;
+    background-color: #fff;
+    background-gradient-start: #fff;
+    background-gradient-end: #eee;
+    color: #000;
+    -st-natural-width: 18.7em;
+    max-width: 18.75em;
+    color: #2e3436;
+    background-color: #eee;
+    border-radius: 2px;
+    padding: 0px 6px 0px;
+    box-shadow: inset -1px -1px 1px rgba(0,0,0,0.5);
+    text-shadow: 0 0 transparent;
+  }
+
+  .window-button:hover > StWidget {
+    background-color: #f9f9f9;
+  }
+
+  .window-button:active > StWidget,
+  .window-button:focus > StWidget {
+    box-shadow: inset 1px 1px 2px rgba(0,0,0,0.5);
+  }
+
+  .window-button.focused > StWidget {
+    background-color: #ddd;
+    box-shadow: inset 1px 1px 1px rgba(0,0,0,0.5);
+  }
+
+  .window-button.focused:hover > StWidget {
+    background-color: #e9e9e9;
+  }
+
+  .window-button.minimized > StWidget {
+    color: #888;
+    box-shadow: inset -1px -1px 1px rgba(0,0,0,0.5);
+  }
Index: gnome-shell-extensions-41.0/extensions/places-menu/extension.js
===================================================================
--- gnome-shell-extensions-41.0.orig/extensions/places-menu/extension.js
+++ gnome-shell-extensions-41.0/extensions/places-menu/extension.js
@@ -139,6 +139,10 @@ function init() {
 
 let _indicator;
 
+function isSLEClassicMode() {
+    return Main.sessionMode.currentMode == "sle-classic" ? true : false;
+}
+
 /** */
 function enable() {
     _indicator = new PlacesMenu();
@@ -146,7 +150,10 @@ function enable() {
     let pos = Main.sessionMode.panel.left.indexOf('appMenu');
     if ('apps-menu' in Main.panel.statusArea)
         pos++;
-    Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
+    if (isSLEClassicMode())
+        Main.panel.addToStatusArea('places-menu', _indicator, 1, 'left');
+    else
+        Main.panel.addToStatusArea('places-menu', _indicator, pos, 'left');
 }
 
 /** */
Index: gnome-shell-extensions-41.0/extensions/apps-menu/extension.js
===================================================================
--- gnome-shell-extensions-41.0.orig/extensions/apps-menu/extension.js
+++ gnome-shell-extensions-41.0/extensions/apps-menu/extension.js
@@ -26,6 +26,10 @@ const NAVIGATION_REGION_OVERSHOOT = 50;
 Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish');
 Gio._promisify(Gio._LocalFilePrototype, 'set_attributes_async', 'set_attributes_finish');
 
+function isSLEClassicMode() {
+    return Main.sessionMode.currentMode == "sle-classic" ? true : false;
+}
+
 var ApplicationMenuItem = GObject.registerClass(
 class ApplicationMenuItem extends PopupMenu.PopupBaseMenuItem {
     _init(button, app) {
@@ -699,8 +703,6 @@ class ApplicationsButton extends PanelMe
         this.applicationsByCategory = {};
         this._tree.load_sync();
         let root = this._tree.get_root_directory();
-        let categoryMenuItem = new CategoryMenuItem(this, null);
-        this.categoriesBox.add_actor(categoryMenuItem);
         let iter = root.iter();
         let nextType;
         while ((nextType = iter.next()) !== GMenu.TreeItemType.INVALID) {
@@ -715,11 +717,15 @@ class ApplicationsButton extends PanelMe
             this.applicationsByCategory[categoryId] = [];
             this._loadCategory(categoryId, dir);
             if (this.applicationsByCategory[categoryId].length > 0) {
-                categoryMenuItem = new CategoryMenuItem(this, dir);
+                let categoryMenuItem = new CategoryMenuItem(this, dir);
                 this.categoriesBox.add_actor(categoryMenuItem);
             }
         }
-
+        //put the favorites at the end of the app catogories
+        //bnc#890989
+        let categoryMenuItem = new CategoryMenuItem(this, null);
+        this.categoriesBox.insert_child_at_index(categoryMenuItem,
+                                                 isSLEClassicMode() ? -1 : 0);
         // Load applications
         this._displayButtons(this._listApplications(null));
 
@@ -783,7 +789,10 @@ let appsMenuButton;
 function enable() {
     appsMenuButton = new ApplicationsButton();
     let index = Main.sessionMode.panel.left.indexOf('activities') + 1;
-    Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left');
+    if (isSLEClassicMode())
+        Main.panel.addToStatusArea('apps-menu', appsMenuButton, 0, 'left');
+    else
+        Main.panel.addToStatusArea('apps-menu', appsMenuButton, index, 'left');
 }
 
 /** */
Index: gnome-shell-extensions-41.0/data/gnome-classic.css
===================================================================
--- gnome-shell-extensions-41.0.orig/data/gnome-classic.css
+++ gnome-shell-extensions-41.0/data/gnome-classic.css
@@ -2262,9 +2262,9 @@ StScrollBar {
   #panel.solid .panel-corner:focus {
     -panel-corner-radius: 0; }
   #panel.lock-screen, #panel.unlock-screen, #panel.login-screen, #panel.solid.lock-screen, #panel.solid.unlock-screen, #panel.solid.login-screen {
-    background-color: rgba(246, 245, 244, 0.5);
-    background-gradient-start: rgba(246, 245, 244, 0.5);
-    background-gradient-end: rgba(246, 245, 244, 0.5);
+    background-color: transparent;
+    background-gradient-direction: none;
+    background-gradient-end: none;
     border-bottom: none; }
     #panel.lock-screen .panel-button, #panel.unlock-screen .panel-button, #panel.login-screen .panel-button, #panel.solid.lock-screen .panel-button, #panel.solid.unlock-screen .panel-button, #panel.solid.login-screen .panel-button {
       color: #eeeeec; }
@@ -2292,3 +2292,6 @@ StScrollBar {
 
 .calendar-day-with-events {
   background-image: url("calendar-today.svg"); }
+
+.popup-menu.panel-menu {
+    margin-bottom: 0em; }
Index: gnome-shell-extensions-41.0/extensions/workspace-indicator/extension.js
===================================================================
--- gnome-shell-extensions-41.0.orig/extensions/workspace-indicator/extension.js
+++ gnome-shell-extensions-41.0/extensions/workspace-indicator/extension.js
@@ -321,7 +321,8 @@ class WorkspaceIndicator extends PanelMe
     _updateThumbnailVisibility() {
         const { workspaceManager } = global;
         const vertical = workspaceManager.layout_rows === -1;
-        const useMenu =
+        let isSLEClassicMode = Main.sessionMode.currentMode == "sle-classic" ? true : false;
+        const useMenu = isSLEClassicMode ? true :
             vertical || workspaceManager.n_workspaces > MAX_THUMBNAILS;
         this.reactive = useMenu;
 
Index: gnome-shell-extensions-41.0/extensions/workspace-indicator/stylesheet.css
===================================================================
--- gnome-shell-extensions-41.0.orig/extensions/workspace-indicator/stylesheet.css
+++ gnome-shell-extensions-41.0/extensions/workspace-indicator/stylesheet.css
@@ -1,5 +1,7 @@
 .panel-workspace-indicator {
   padding: 0 8px;
+  background-color: rgba(200, 200, 200, .5);
+  border: 1px solid #cccccc;
 }
 
 .panel-workspace-indicator-box {
openSUSE Build Service is sponsored by