File gse-sle-classic-ext.patch of Package gnome-shell-extensions
Index: gnome-shell-extensions-40.3/extensions/window-list/extension.js
===================================================================
--- gnome-shell-extensions-40.3.orig/extensions/window-list/extension.js
+++ gnome-shell-extensions-40.3/extensions/window-list/extension.js
@@ -23,6 +23,9 @@ const GroupingMode = {
ALWAYS: 2,
};
+function isSLEClassicMode() {
+ return Main.sessionMode.currentMode == "sle-classic" ? true : false;
+}
function _minimizeOrActivateWindow(window) {
let focusWindow = global.display.focus_window;
@@ -687,11 +690,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({
@@ -832,7 +837,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() {
@@ -868,6 +874,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];
}
@@ -1068,7 +1077,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);
@@ -1109,6 +1119,7 @@ class Extension {
this._windowLists = null;
this._hideOverviewOrig = Main.overview.hide;
+ this._isSLEClassic = isSLEClassicMode();
}
enable() {
@@ -1128,19 +1139,47 @@ 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(); });
+ }
+
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;
+ Main.layoutManager.removeChrome(list);
+
+ 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() {
@@ -1154,6 +1193,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();
});
@@ -1162,6 +1206,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-40.3/extensions/window-list/sle-classic.css
===================================================================
--- /dev/null
+++ gnome-shell-extensions-40.3/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-40.3/extensions/places-menu/extension.js
===================================================================
--- gnome-shell-extensions-40.3.orig/extensions/places-menu/extension.js
+++ gnome-shell-extensions-40.3/extensions/places-menu/extension.js
@@ -139,13 +139,21 @@ function init() {
let _indicator;
+function isSLEClassicMode() {
+ return Main.sessionMode.currentMode == "sle-classic" ? true : false;
+}
+
function enable() {
_indicator = new PlacesMenu();
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');
}
function disable() {
Index: gnome-shell-extensions-40.3/extensions/apps-menu/extension.js
===================================================================
--- gnome-shell-extensions-40.3.orig/extensions/apps-menu/extension.js
+++ gnome-shell-extensions-40.3/extensions/apps-menu/extension.js
@@ -27,6 +27,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) {
@@ -707,8 +711,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) {
@@ -723,11 +725,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));
@@ -790,7 +796,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');
}
function disable() {
Index: gnome-shell-extensions-40.3/data/gnome-classic.css
===================================================================
--- gnome-shell-extensions-40.3.orig/data/gnome-classic.css
+++ gnome-shell-extensions-40.3/data/gnome-classic.css
@@ -2259,9 +2259,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; }
@@ -2288,3 +2288,6 @@ StScrollBar {
.calendar-day-with-events {
background-image: url("calendar-today.svg"); }
+
+.popup-menu.panel-menu {
+ margin-bottom: 0em; }
Index: gnome-shell-extensions-40.3/extensions/workspace-indicator/extension.js
===================================================================
--- gnome-shell-extensions-40.3.orig/extensions/workspace-indicator/extension.js
+++ gnome-shell-extensions-40.3/extensions/workspace-indicator/extension.js
@@ -322,7 +322,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-40.3/extensions/workspace-indicator/stylesheet.css
===================================================================
--- gnome-shell-extensions-40.3.orig/extensions/workspace-indicator/stylesheet.css
+++ gnome-shell-extensions-40.3/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 {