Dominique Leuenberger
d94b383afe
Repush, rebased OBS-URL: https://build.opensuse.org/request/show/795142 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gnome-shell-extensions?expand=0&rev=214
302 lines
11 KiB
Diff
302 lines
11 KiB
Diff
Index: gnome-shell-extensions-3.35.92/extensions/window-list/extension.js
|
|
===================================================================
|
|
--- gnome-shell-extensions-3.35.92.orig/extensions/window-list/extension.js
|
|
+++ gnome-shell-extensions-3.35.92/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({
|
|
@@ -833,7 +838,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() {
|
|
@@ -869,6 +875,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];
|
|
}
|
|
@@ -1078,7 +1087,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);
|
|
|
|
@@ -1118,6 +1128,7 @@ class Extension {
|
|
constructor() {
|
|
this._windowLists = null;
|
|
this._hideOverviewOrig = Main.overview.hide;
|
|
+ this._isSLEClassic = isSLEClassicMode();
|
|
}
|
|
|
|
enable() {
|
|
@@ -1137,19 +1148,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() {
|
|
@@ -1163,6 +1202,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();
|
|
});
|
|
@@ -1171,6 +1215,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-3.35.92/extensions/window-list/sle-classic.css
|
|
===================================================================
|
|
--- /dev/null
|
|
+++ gnome-shell-extensions-3.35.92/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-3.35.92/extensions/places-menu/extension.js
|
|
===================================================================
|
|
--- gnome-shell-extensions-3.35.92.orig/extensions/places-menu/extension.js
|
|
+++ gnome-shell-extensions-3.35.92/extensions/places-menu/extension.js
|
|
@@ -133,13 +133,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-3.35.92/extensions/apps-menu/extension.js
|
|
===================================================================
|
|
--- gnome-shell-extensions-3.35.92.orig/extensions/apps-menu/extension.js
|
|
+++ gnome-shell-extensions-3.35.92/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) {
|
|
@@ -710,8 +714,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) {
|
|
@@ -726,11 +728,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));
|
|
|
|
@@ -793,7 +799,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-3.35.92/data/gnome-classic.scss
|
|
===================================================================
|
|
--- gnome-shell-extensions-3.35.92.orig/data/gnome-classic.scss
|
|
+++ gnome-shell-extensions-3.35.92/data/gnome-classic.scss
|
|
@@ -63,9 +63,9 @@ $variant: 'light';
|
|
&.lock-screen,
|
|
&.unlock-screen,
|
|
&.login-screen {
|
|
- background-color: transparentize($bg_color, 0.5);
|
|
- background-gradient-start: transparentize($bg_color, 0.5);
|
|
- background-gradient-end: transparentize($bg_color, 0.5);
|
|
+ background-color: transparent;
|
|
+ background-gradient-direction: none;
|
|
+ background-gradient-end: none;
|
|
border-bottom: none;
|
|
.panel-button { color: $osd_fg_color; }
|
|
}
|
|
@@ -94,3 +94,5 @@ $variant: 'light';
|
|
background-image: url("calendar-today.svg");
|
|
}
|
|
|
|
+.popup-menu.panel-menu {
|
|
+ margin-bottom: 0em; }
|