Yuchen Lin 2017-08-12 17:38:40 +00:00 committed by Git OBS Bridge
commit a98e0f95b6
5 changed files with 153 additions and 102 deletions

View File

@ -1,22 +1,17 @@
Index: gnome-shell-extensions-3.20.0/extensions/apps-menu/extension.js
Index: gnome-shell-extensions-3.24.2/extensions/apps-menu/extension.js
===================================================================
--- gnome-shell-extensions-3.20.0.orig/extensions/apps-menu/extension.js
+++ gnome-shell-extensions-3.20.0/extensions/apps-menu/extension.js
@@ -6,10 +6,13 @@ const Lang = imports.lang;
--- gnome-shell-extensions-3.24.2.orig/extensions/apps-menu/extension.js
+++ gnome-shell-extensions-3.24.2/extensions/apps-menu/extension.js
@@ -7,6 +7,8 @@ const Lang = imports.lang;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
const Clutter = imports.gi.Clutter;
+const BoxPointer = imports.ui.boxpointer;
+const AppFavorites = imports.ui.appFavorites;
const Main = imports.ui.main;
const Meta = imports.gi.Meta;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const Gtk = imports.gi.Gtk;
+const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const Signals = imports.signals;
const Pango = imports.gi.Pango;
@@ -65,13 +68,118 @@ const ApplicationMenuItem = new Lang.Cla
@@ -68,9 +70,20 @@ const ApplicationMenuItem = new Lang.Cla
let textureCache = St.TextureCache.get_default();
let iconThemeChangedId = textureCache.connect('icon-theme-changed',
Lang.bind(this, this._updateIcon));
@ -36,6 +31,9 @@ Index: gnome-shell-extensions-3.20.0/extensions/apps-menu/extension.js
+ }
}));
this._updateIcon();
@@ -92,6 +105,100 @@ const ApplicationMenuItem = new Lang.Cla
});
},
+ _onKeyboardPopupMenu: function() {
@ -113,7 +111,7 @@ Index: gnome-shell-extensions-3.20.0/extensions/apps-menu/extension.js
+ if (sourceFile.copy(destFile, Gio.FileCopyFlags.OVERWRITE,
+ null, null, null)) {
+ destFile.set_attribute_uint32(
+ Gio.FILE_ATTRIBUTE_UNIX_MODE, 0755,
+ Gio.FILE_ATTRIBUTE_UNIX_MODE, parseInt("0755", 8),
+ Gio.FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
+ null);
+ }

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Wed Aug 2 02:51:32 UTC 2017 - xwang@suse.com
- Update sle-classic patches to version 3.24.3:
+ Update gnome-shell-add-app-to-desktop.patch
+ Update gse-sle-classic-ext.patch
+ Update sle-classic-favorites-menu-at-end.patch
+ Update sle-classic-lock-screen-background.patch
-------------------------------------------------------------------
Thu Jul 20 08:57:14 UTC 2017 - zaitor@opensuse.org
@ -619,7 +628,7 @@ Fri Jul 11 05:30:17 UTC 2014 - cxiong@suse.com
- Remove Avatar symbol from system indicators (bnc#886569)
+ No separate patch file, changes are in sle-classic.tar.bz2
+ It's not considered a good indication for log out
+ It's not considered a good indication for log out
-------------------------------------------------------------------
Wed Jul 2 09:46:01 UTC 2014 - fcrozat@suse.com

View File

@ -1,8 +1,8 @@
diff --git a/data/gnome-classic.css b/sp2-rebasing/gnome-shell-extensions-3.20.0/data/gnome-classic.css
index 7e1b253..80333e2 100644
--- a/data/gnome-classic.css
+++ b/data/gnome-classic.css
@@ -441,7 +441,12 @@ StScrollBar {
Index: gnome-shell-extensions-3.24.2/data/gnome-classic.css
===================================================================
--- gnome-shell-extensions-3.24.2.orig/data/gnome-classic.css
+++ gnome-shell-extensions-3.24.2/data/gnome-classic.css
@@ -512,7 +512,12 @@ StScrollBar {
color: rgba(46, 52, 54, 0.5); }
.popup-menu.panel-menu {
-boxpointer-gap: 4px;
@ -16,9 +16,39 @@ index 7e1b253..80333e2 100644
.popup-menu-ornament {
text-align: right;
diff -pur a/extensions/window-list/classic.css b/extensions/window-list/classic.css
--- a/extensions/window-list/classic.css 2016-05-23 16:41:51.603370114 +0800
+++ b/extensions/window-list/classic.css 2016-05-23 16:44:37.024370114 +0800
@@ -877,6 +882,7 @@ StScrollBar {
width: 31.5em; }
.message-list-clear-button.button {
+ color: black;
background-color: transparent;
margin: 1.5em 1.5em 0; }
.message-list-clear-button.button:hover, .message-list-clear-button.button:focus {
@@ -900,7 +906,6 @@ StScrollBar {
padding: 10px 10px 10px 3px; }
.message-icon-bin > StIcon {
- color: black;
icon-size: 16px;
-st-icon-style: symbolic; }
@@ -917,11 +922,9 @@ StScrollBar {
.message-secondary-bin > StIcon {
icon-size: 16px; }
-.message-title {
- color: #222728; }
+.message-title {}
.message-content {
- color: black;
padding: 10px; }
.message-media-control {
Index: gnome-shell-extensions-3.24.2/extensions/window-list/classic.css
===================================================================
--- gnome-shell-extensions-3.24.2.orig/extensions/window-list/classic.css
+++ gnome-shell-extensions-3.24.2/extensions/window-list/classic.css
@@ -6,7 +6,7 @@
height: 2.25em ;
}
@ -28,48 +58,42 @@ index 7e1b253..80333e2 100644
background-gradient-drection: vertical;
background-color: #fff;
background-gradient-start: #fff;
@@ -22,29 +22,29 @@
@@ -22,25 +22,25 @@
text-shadow: 0 0 transparent;
}
- .bottom-panel .window-button:hover > StWidget {
+ .window-button:hover > StWidget {
+ .window-button:hover > StWidget {
background-color: #f9f9f9;
}
- .bottom-panel .window-button:active > StWidget,
- .bottom-panel .window-button:focus > StWidget {
+ .window-button:active > StWidget,
+ .window-button:focus > StWidget {
+ .window-button:active > StWidget,
+ .window-button:focus > StWidget {
box-shadow: inset 1px 1px 2px rgba(0,0,0,0.5);
}
- .bottom-panel .window-button.focused > StWidget {
+ .window-button.focused > StWidget {
+ .window-button.focused > StWidget {
background-color: #ddd;
box-shadow: inset 1px 1px 1px rgba(0,0,0,0.5);
}
- .bottom-panel .window-button.focused:hover > StWidget {
+ .window-button.focused:hover > StWidget {
+ .window-button.focused:hover > StWidget {
background-color: #e9e9e9;
}
- .bottom-panel .window-button.minimized > StWidget {
+ .window-button.minimized > StWidget {
+ .window-button.minimized > StWidget {
color: #888;
box-shadow: inset -1px -1px 1px rgba(0,0,0,0.5);
}
- .bottom-panel .window-button.minimized > StWidget {
+ .window-button.minimized > StWidget {
box-shadow: inset 1px 1px 1px rgba(0,0,0,0.5);
}
diff --git a/extensions/window-list/extension.js b/sp2-rebasing/gnome-shell-extensions-3.20.0/extensions/window-list/extension.js
index bdd4680..2419547 100644
--- a/extensions/window-list/extension.js
+++ b/extensions/window-list/extension.js
Index: gnome-shell-extensions-3.24.2/extensions/window-list/extension.js
===================================================================
--- gnome-shell-extensions-3.24.2.orig/extensions/window-list/extension.js
+++ gnome-shell-extensions-3.24.2/extensions/window-list/extension.js
@@ -22,6 +22,8 @@ const _ = Gettext.gettext;
const ICON_TEXTURE_SIZE = 24;
const DND_ACTIVATE_TIMEOUT = 500;
@ -89,7 +113,7 @@ index bdd4680..2419547 100644
const WindowContextMenu = new Lang.Class({
Name: 'WindowContextMenu',
Extends: PopupMenu.PopupMenu,
@@ -113,6 +118,9 @@ const WindowContextMenu = new Lang.Class({
@@ -113,6 +118,9 @@ const WindowContextMenu = new Lang.Class
}));
this.addMenuItem(item);
@ -99,7 +123,7 @@ index bdd4680..2419547 100644
this.actor.connect('destroy', Lang.bind(this, this._onDestroy));
},
@@ -661,6 +669,8 @@ const WorkspaceIndicator = new Lang.Class({
@@ -669,6 +677,8 @@ const WorkspaceIndicator = new Lang.Clas
this.parent(0.0, _("Workspace Indicator"), true);
this.setMenu(new PopupMenu.PopupMenu(this.actor, 0.0, St.Side.BOTTOM));
this.actor.add_style_class_name('window-list-workspace-indicator');
@ -108,17 +132,18 @@ index bdd4680..2419547 100644
this.menu.actor.remove_style_class_name('panel-menu');
let container = new St.Widget({ layout_manager: new Clutter.BinLayout(),
@@ -765,199 +775,143 @@ const WorkspaceIndicator = new Lang.Class({
@@ -773,88 +783,53 @@ const WorkspaceIndicator = new Lang.Clas
}
});
-const WindowList = new Lang.Class({
- Name: 'WindowList',
-
- _init: function(perMonitor, monitor) {
+// NOTE: call `initializeWindowList` explicitly to finish initialization.
+const PureWinList = new Lang.Class({
+ Name: 'PureWinList',
- _init: function(perMonitor, monitor) {
+
+ _init: function(perMonitor, monitor, maxWidthFunc) {
+ // NOTE: in SLE Classic `PureWinList` will NOT use any multiple monitor
+ // support, the following is kept for use in GNOME Classic as we try to
@ -176,10 +201,15 @@ index bdd4680..2419547 100644
- this._workspaceIndicator = new WorkspaceIndicator();
- indicatorsBox.add(this._workspaceIndicator.container, { expand: false, y_fill: true });
-
- this._mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter' });
- this._workspaceSettings = this._getWorkspaceSettings();
- this._workspacesOnlyOnPrimaryChangedId =
- this._workspaceSettings.connect('changed::workspaces-only-on-primary',
- Lang.bind(this, this._updateWorkspaceIndicatorVisibility));
- this._dynamicWorkspacesSettings = this._getDynamicWorkspacesSettings();
- this._dynamicWorkspacesChangedId =
- this._dynamicWorkspacesSettings.connect('changed::dynamic-workspaces',
- Lang.bind(this, this._updateWorkspaceIndicatorVisibility));
- this._updateWorkspaceIndicatorVisibility();
-
- this._menuManager = new PopupMenu.PopupMenuManager(this);
@ -193,7 +223,7 @@ index bdd4680..2419547 100644
- this.actor.width = this._monitor.width;
- this.actor.connect('notify::height', Lang.bind(this, this._updatePosition));
- this._updatePosition();
-
this._appSystem = Shell.AppSystem.get_default();
this._appStateChangedId =
this._appSystem.connect('app-state-changed',
@ -225,10 +255,7 @@ index bdd4680..2419547 100644
this._workspaceSignals = new Map();
this._nWorkspacesChangedId =
global.screen.connect('notify::n-workspaces',
Lang.bind(this, this._onWorkspacesChanged));
this._onWorkspacesChanged();
-
this._switchWorkspaceId =
@@ -865,42 +840,18 @@ const WindowList = new Lang.Class({
global.window_manager.connect('switch-workspace',
Lang.bind(this, this._checkGrouping));
@ -238,19 +265,19 @@ index bdd4680..2419547 100644
this.actor.hide();
- this._updateKeyboardAnchor();
}));
-
this._overviewHidingId =
Main.overview.connect('hiding', Lang.bind(this, function() {
- this.actor.visible = !Main.layoutManager.primaryMonitor.inFullscreen;
- this._updateKeyboardAnchor();
+ this.actor.show();
}));
- }));
-
- this._fullscreenChangedId =
- global.screen.connect('in-fullscreen-changed', Lang.bind(this, function() {
- this._updateKeyboardAnchor();
- }));
-
+ this.actor.show();
}));
- this._dragBeginId =
- Main.xdndHandler.connect('drag-begin',
- Lang.bind(this, this._onDragBegin));
@ -270,13 +297,19 @@ index bdd4680..2419547 100644
- Lang.bind(this, this._groupingModeChanged));
- this._grouped = undefined;
- this._groupingModeChanged();
+ this._groupingMode = this._settings.get_enum('grouping-mode');
},
_getDynamicWorkspacesSettings: function() {
@@ -909,77 +860,77 @@ const WindowList = new Lang.Class({
return this._mutterSettings;
},
- _getWorkspaceSettings: function() {
- let settings = global.get_overrides_settings();
- if (settings.list_keys().indexOf('workspaces-only-on-primary') > -1)
- return settings;
- return new Gio.Settings({ schema_id: 'org.gnome.mutter' });
- return this._mutterSettings;
+ // NOTE: an API for parent panel to refresh the window list. This is
+ // necessary as window/app buttons require its parents having allocation and
+ // positioning *completed* before being properly allocated and positioned
@ -310,10 +343,10 @@ index bdd4680..2419547 100644
- active = i;
+ let totalBtnNum = buttons.length;
+
+ let activeBtnIdx = 0;
+ let activeBtnIdx = 0
+ for (let i = 0; i < totalBtnNum; i++) {
+ if (buttons[i].active) {
+ activeBtnIdx = i;
+ activeBtnIdx = i
break;
}
}
@ -321,11 +354,6 @@ index bdd4680..2419547 100644
- active = Math.max(0, Math.min(active + diff, children.length-1));
- children[active].activate();
- },
-
- _updatePosition: function() {
- this.actor.set_position(this._monitor.x,
- this._monitor.y + this._monitor.height - this.actor.height);
- },
+ // NOTE: bound by `0` and `totalBtnNum - 1`, no wrapping for
+ // scrolling.
+ activeBtnIdx = activeBtnIdx + diff;
@ -333,14 +361,29 @@ index bdd4680..2419547 100644
+ if (noScrollActionNeeded)
+ return;
- _updateWorkspaceIndicatorVisibility: function() {
- this._workspaceIndicator.actor.visible =
- this._monitor == Main.layoutManager.primaryMonitor ||
- !this._workspaceSettings.get_boolean('workspaces-only-on-primary');
- _updatePosition: function() {
- this.actor.set_position(this._monitor.x,
- this._monitor.y + this._monitor.height - this.actor.height);
+ // TODO: no need to call `deactivate` for old `active button` ?
+ buttons[activeBtnIdx].activate();
},
- _updateWorkspaceIndicatorVisibility: function() {
- let hasWorkspaces = this._dynamicWorkspacesSettings.get_boolean('dynamic-workspaces') ||
- global.screen.n_workspaces > 1;
- let workspacesOnMonitor = this._monitor == Main.layoutManager.primaryMonitor ||
- !this._workspaceSettings.get_boolean('workspaces-only-on-primary');
+ _onAppStateChanged: function(appSys, app) {
+ if (!this._grouped)
+ return;
- this._workspaceIndicator.actor.visible = hasWorkspaces && workspacesOnMonitor;
+ if (app.state == Shell.AppState.RUNNING)
+ this._addApp(app);
+ else if (app.state == Shell.AppState.STOPPED)
+ this._removeApp(app);
},
- _getPreferredUngroupedWindowListWidth: function() {
- if (this._windowList.get_n_children() == 0)
- return this._windowList.get_preferred_width(-1)[1];
@ -348,10 +391,7 @@ index bdd4680..2419547 100644
- let children = this._windowList.get_children();
- let [, childWidth] = children[0].get_preferred_width(-1);
- let spacing = this._windowList.layout_manager.spacing;
+ _onAppStateChanged: function(appSys, app) {
+ if (!this._grouped)
+ return;
-
- let workspace = global.screen.get_active_workspace();
- let windows = global.display.get_tab_list(Meta.TabList.NORMAL, workspace);
- if (this._perMonitor) {
@ -362,19 +402,14 @@ index bdd4680..2419547 100644
- let nWindows = windows.length;
- if (nWindows == 0)
- return this._windowList.get_preferred_width(-1)[1];
+ if (app.state == Shell.AppState.RUNNING)
+ this._addApp(app);
+ else if (app.state == Shell.AppState.STOPPED)
+ this._removeApp(app);
+ },
-
- return nWindows * childWidth + (nWindows - 1) * spacing;
+ _addApp: function(app) {
+ let button = new AppButton(app, this._perMonitor, this._monitor.index);
+ this.actor.layout_manager.pack(button.actor,
+ true, true, true,
+ Clutter.BoxAlignment.START,
+ Clutter.BoxAlignment.START);
+ Clutter.BoxAlignment.START)
},
- _getMaxWindowListWidth: function() {
@ -391,7 +426,7 @@ index bdd4680..2419547 100644
},
_groupingModeChanged: function() {
@@ -966,7 +920,7 @@ const WindowList = new Lang.Class({
@@ -988,7 +939,7 @@ const WindowList = new Lang.Class({
if (this._groupingMode == GroupingMode.AUTO) {
this._checkGrouping();
} else {
@ -400,7 +435,7 @@ index bdd4680..2419547 100644
this._populateWindowList();
}
},
@@ -975,6 +929,26 @@ const WindowList = new Lang.Class({
@@ -997,6 +948,26 @@ const WindowList = new Lang.Class({
if (this._groupingMode != GroupingMode.AUTO)
return;
@ -427,7 +462,7 @@ index bdd4680..2419547 100644
let maxWidth = this._getMaxWindowListWidth();
let natWidth = this._getPreferredUngroupedWindowListWidth();
@@ -986,7 +960,7 @@ const WindowList = new Lang.Class({
@@ -1008,7 +979,7 @@ const WindowList = new Lang.Class({
},
_populateWindowList: function() {
@ -436,7 +471,7 @@ index bdd4680..2419547 100644
if (!this._grouped) {
let windows = global.get_window_actors().sort(
@@ -1007,42 +981,8 @@ const WindowList = new Lang.Class({
@@ -1029,42 +1000,8 @@ const WindowList = new Lang.Class({
}
},
@ -481,7 +516,7 @@ index bdd4680..2419547 100644
_onWindowAdded: function(ws, win) {
if (win.skip_taskbar)
return;
@@ -1053,30 +993,32 @@ const WindowList = new Lang.Class({
@@ -1075,30 +1012,32 @@ const WindowList = new Lang.Class({
if (this._grouped)
return;
@ -520,7 +555,7 @@ index bdd4680..2419547 100644
for (let i = 0; i < children.length; i++) {
if (children[i]._delegate.metaWindow == win) {
children[i].destroy();
@@ -1085,6 +1027,28 @@ const WindowList = new Lang.Class({
@@ -1107,6 +1046,28 @@ const WindowList = new Lang.Class({
}
},
@ -549,7 +584,16 @@ index bdd4680..2419547 100644
_onWorkspacesChanged: function() {
let numWorkspaces = global.screen.n_workspaces;
for (let i = 0; i < numWorkspaces; i++) {
@@ -1114,6 +1078,157 @@ const WindowList = new Lang.Class({
@@ -1123,8 +1084,6 @@ const WindowList = new Lang.Class({
Lang.bind(this, this._onWindowRemoved));
this._workspaceSignals.set(workspace, signals);
}
-
- this._updateWorkspaceIndicatorVisibility();
},
_disconnectWorkspaceSignals: function() {
@@ -1138,6 +1097,157 @@ const WindowList = new Lang.Class({
}
},
@ -707,7 +751,7 @@ index bdd4680..2419547 100644
_onDragBegin: function() {
DND.addDragMonitor(this._dragMonitor);
},
@@ -1174,22 +1289,11 @@ const WindowList = new Lang.Class({
@@ -1199,22 +1309,11 @@ const WindowList = new Lang.Class({
Main.ctrlAltTabManager.removeGroup(this.actor);
@ -730,7 +774,7 @@ index bdd4680..2419547 100644
Main.overview.disconnect(this._overviewShowingId);
Main.overview.disconnect(this._overviewHidingId);
@@ -1197,12 +1301,6 @@ const WindowList = new Lang.Class({
@@ -1222,12 +1321,6 @@ const WindowList = new Lang.Class({
Main.xdndHandler.disconnect(this._dragBeginId);
Main.xdndHandler.disconnect(this._dragEndId);
@ -743,7 +787,7 @@ index bdd4680..2419547 100644
}
});
@@ -1211,7 +1309,6 @@ const Extension = new Lang.Class({
@@ -1236,7 +1329,6 @@ const Extension = new Lang.Class({
_init: function() {
this._windowLists = null;
@ -751,7 +795,7 @@ index bdd4680..2419547 100644
},
enable: function() {
@@ -1267,6 +1364,63 @@ const Extension = new Lang.Class({
@@ -1292,6 +1384,63 @@ const Extension = new Lang.Class({
}
});
@ -816,10 +860,10 @@ index bdd4680..2419547 100644
+ return new Extension();
+ }
}
diff --git a/extensions/window-list/stylesheet.css b/sp2-rebasing/gnome-shell-extensions-3.20.0/extensions/window-list/stylesheet.css
index f5285cb..c207078 100644
--- a/extensions/window-list/stylesheet.css
+++ b/extensions/window-list/stylesheet.css
Index: gnome-shell-extensions-3.24.2/extensions/window-list/stylesheet.css
===================================================================
--- gnome-shell-extensions-3.24.2.orig/extensions/window-list/stylesheet.css
+++ gnome-shell-extensions-3.24.2/extensions/window-list/stylesheet.css
@@ -79,6 +79,10 @@
border: 1px solid #cccccc;
}

View File

@ -1,9 +1,9 @@
Index: gnome-shell-extensions-3.20.1/extensions/apps-menu/extension.js
Index: gnome-shell-extensions-3.24.2/extensions/apps-menu/extension.js
===================================================================
--- gnome-shell-extensions-3.20.1.orig/extensions/apps-menu/extension.js
+++ gnome-shell-extensions-3.20.1/extensions/apps-menu/extension.js
@@ -20,6 +20,8 @@ const Pango = imports.gi.Pango;
--- gnome-shell-extensions-3.24.2.orig/extensions/apps-menu/extension.js
+++ gnome-shell-extensions-3.24.2/extensions/apps-menu/extension.js
@@ -22,6 +22,8 @@ const Pango = imports.gi.Pango;
const Gettext = imports.gettext.domain('gnome-shell-extensions');
const _ = Gettext.gettext;
@ -12,7 +12,7 @@ Index: gnome-shell-extensions-3.20.1/extensions/apps-menu/extension.js
const ExtensionUtils = imports.misc.extensionUtils;
const Me = ExtensionUtils.getCurrentExtension();
const Convenience = Me.imports.convenience;
@@ -609,8 +611,6 @@ const ApplicationsButton = new Lang.Clas
@@ -793,8 +795,6 @@ const ApplicationsButton = new Lang.Clas
let tree = new GMenu.Tree({ menu_basename: 'applications.menu' });
tree.load_sync();
let root = tree.get_root_directory();
@ -21,7 +21,7 @@ Index: gnome-shell-extensions-3.20.1/extensions/apps-menu/extension.js
let iter = root.iter();
let nextType;
while ((nextType = iter.next()) != GMenu.TreeItemType.INVALID) {
@@ -628,6 +628,10 @@ const ApplicationsButton = new Lang.Clas
@@ -812,6 +812,10 @@ const ApplicationsButton = new Lang.Clas
}
}

View File

@ -1,8 +1,8 @@
diff --git a/data/gnome-classic.css b/data/gnome-classic.css
index 7e1b253..a12ea67 100644
--- a/data/gnome-classic.css
+++ b/data/gnome-classic.css
@@ -1471,7 +1471,8 @@ StScrollBar {
Index: gnome-shell-extensions-3.24.2/data/gnome-classic.css
===================================================================
--- gnome-shell-extensions-3.24.2.orig/data/gnome-classic.css
+++ gnome-shell-extensions-3.24.2/data/gnome-classic.css
@@ -1606,7 +1606,8 @@ StScrollBar {
.login-dialog {
border: none;