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 {