Backport several bugfix commits from current git master
This commit is contained in:
parent
bcf54f1782
commit
5d110a612a
@ -0,0 +1,53 @@
|
|||||||
|
From 284978757ee6b13dc9678700e2b1972507dbaaa5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Fri, 13 Jul 2018 19:16:14 +0200
|
||||||
|
Subject: [PATCH 01/25] windowAttentionHandler: Handle XUrgencyHint as well
|
||||||
|
|
||||||
|
While it's not commonly used, it is easy enough to handle it the
|
||||||
|
same as the demands-attention hint, so do just that.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=643595
|
||||||
|
---
|
||||||
|
js/ui/windowAttentionHandler.js | 12 +++++++++++-
|
||||||
|
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/windowAttentionHandler.js b/js/ui/windowAttentionHandler.js
|
||||||
|
index 524e47c0f..a8c688ef3 100644
|
||||||
|
--- a/js/ui/windowAttentionHandler.js
|
||||||
|
+++ b/js/ui/windowAttentionHandler.js
|
||||||
|
@@ -13,6 +13,8 @@ var WindowAttentionHandler = new Lang.Class({
|
||||||
|
this._tracker = Shell.WindowTracker.get_default();
|
||||||
|
this._windowDemandsAttentionId = global.display.connect('window-demands-attention',
|
||||||
|
this._onWindowDemandsAttention.bind(this));
|
||||||
|
+ this._windowMarkedUrgentId = global.display.connect('window-marked-urgent',
|
||||||
|
+ this._onWindowDemandsAttention.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
_getTitleAndBanner(app, window) {
|
||||||
|
@@ -66,7 +68,9 @@ var Source = new Lang.Class({
|
||||||
|
|
||||||
|
this.signalIDs = [];
|
||||||
|
this.signalIDs.push(this._window.connect('notify::demands-attention',
|
||||||
|
- () => { this.destroy(); }));
|
||||||
|
+ this._sync.bind(this));
|
||||||
|
+ this.signalIDs.push(this._window.connect('notify::urgent',
|
||||||
|
+ this._sync.bind(this));
|
||||||
|
this.signalIDs.push(this._window.connect('focus',
|
||||||
|
() => { this.destroy(); }));
|
||||||
|
this.signalIDs.push(this._window.connect('unmanaged',
|
||||||
|
@@ -75,6 +79,12 @@ var Source = new Lang.Class({
|
||||||
|
this.connect('destroy', this._onDestroy.bind(this));
|
||||||
|
},
|
||||||
|
|
||||||
|
+ _sync() {
|
||||||
|
+ if (this._window.demands_attention || this._window.urgent)
|
||||||
|
+ return;
|
||||||
|
+ this.destroy();
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
_onDestroy() {
|
||||||
|
for(let i = 0; i < this.signalIDs.length; i++) {
|
||||||
|
this._window.disconnect(this.signalIDs[i]);
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
@ -0,0 +1,80 @@
|
|||||||
|
From f81887772ac0e5adc4fac1c3a1839bbd8c87ff13 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cosimo Cecchi <cosimo@endlessm.com>
|
||||||
|
Date: Wed, 25 May 2016 11:28:57 -0700
|
||||||
|
Subject: [PATCH 2/4] keyboard: split out a function to udpate the MRU list
|
||||||
|
|
||||||
|
We're going to add saving of the MRU list in the function in a later
|
||||||
|
commit.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=766826
|
||||||
|
---
|
||||||
|
js/ui/status/keyboard.js | 46 +++++++++++++++++++++++++---------------------
|
||||||
|
1 file changed, 25 insertions(+), 21 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||||
|
index 895b73c..8f45b0d 100644
|
||||||
|
--- a/js/ui/status/keyboard.js
|
||||||
|
+++ b/js/ui/status/keyboard.js
|
||||||
|
@@ -440,6 +440,30 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
this._currentInputSourceChanged(is);
|
||||||
|
},
|
||||||
|
|
||||||
|
+ _updateMruSources: function() {
|
||||||
|
+ let sourcesList = [];
|
||||||
|
+ for (let i in this._inputSources)
|
||||||
|
+ sourcesList.push(this._inputSources[i]);
|
||||||
|
+
|
||||||
|
+ this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
|
||||||
|
+
|
||||||
|
+ if (!this._disableIBus && this._mruSourcesBackup) {
|
||||||
|
+ this._mruSources = this._mruSourcesBackup;
|
||||||
|
+ this._mruSourcesBackup = null;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ let mruSources = [];
|
||||||
|
+ for (let i = 0; i < this._mruSources.length; i++) {
|
||||||
|
+ for (let j = 0; j < sourcesList.length; j++)
|
||||||
|
+ if (this._mruSources[i].type == sourcesList[j].type &&
|
||||||
|
+ this._mruSources[i].id == sourcesList[j].id) {
|
||||||
|
+ mruSources = mruSources.concat(sourcesList.splice(j, 1));
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ this._mruSources = mruSources.concat(sourcesList);
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
_inputSourcesChanged: function() {
|
||||||
|
let sources = this._settings.inputSources;
|
||||||
|
let nSources = sources.length;
|
||||||
|
@@ -514,27 +538,7 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
|
||||||
|
this.emit('sources-changed');
|
||||||
|
|
||||||
|
- let sourcesList = [];
|
||||||
|
- for (let i in this._inputSources)
|
||||||
|
- sourcesList.push(this._inputSources[i]);
|
||||||
|
-
|
||||||
|
- this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
|
||||||
|
-
|
||||||
|
- if (!this._disableIBus && this._mruSourcesBackup) {
|
||||||
|
- this._mruSources = this._mruSourcesBackup;
|
||||||
|
- this._mruSourcesBackup = null;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- let mruSources = [];
|
||||||
|
- for (let i = 0; i < this._mruSources.length; i++) {
|
||||||
|
- for (let j = 0; j < sourcesList.length; j++)
|
||||||
|
- if (this._mruSources[i].type == sourcesList[j].type &&
|
||||||
|
- this._mruSources[i].id == sourcesList[j].id) {
|
||||||
|
- mruSources = mruSources.concat(sourcesList.splice(j, 1));
|
||||||
|
- break;
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- this._mruSources = mruSources.concat(sourcesList);
|
||||||
|
+ this._updateMruSources();
|
||||||
|
|
||||||
|
if (this._mruSources.length > 0)
|
||||||
|
this._mruSources[0].activate();
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
29
0002-windowAttentionHandler-Fix-syntax-errors.patch
Normal file
29
0002-windowAttentionHandler-Fix-syntax-errors.patch
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
From 240f3faf6e58070fa98cab30bd2b9ff83f759a1c Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Wed, 14 Nov 2018 19:38:33 +0100
|
||||||
|
Subject: [PATCH 02/25] windowAttentionHandler: Fix syntax errors
|
||||||
|
|
||||||
|
Gah, why didn't we catch those?!
|
||||||
|
---
|
||||||
|
js/ui/windowAttentionHandler.js | 4 ++--
|
||||||
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/windowAttentionHandler.js b/js/ui/windowAttentionHandler.js
|
||||||
|
index a8c688ef3..3e53f60b5 100644
|
||||||
|
--- a/js/ui/windowAttentionHandler.js
|
||||||
|
+++ b/js/ui/windowAttentionHandler.js
|
||||||
|
@@ -68,9 +68,9 @@ var Source = new Lang.Class({
|
||||||
|
|
||||||
|
this.signalIDs = [];
|
||||||
|
this.signalIDs.push(this._window.connect('notify::demands-attention',
|
||||||
|
- this._sync.bind(this));
|
||||||
|
+ this._sync.bind(this)));
|
||||||
|
this.signalIDs.push(this._window.connect('notify::urgent',
|
||||||
|
- this._sync.bind(this));
|
||||||
|
+ this._sync.bind(this)));
|
||||||
|
this.signalIDs.push(this._window.connect('focus',
|
||||||
|
() => { this.destroy(); }));
|
||||||
|
this.signalIDs.push(this._window.connect('unmanaged',
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
@ -0,0 +1,89 @@
|
|||||||
|
From 5c0eba7d3be5997d973c3f0a06f2ecd4aa3e5db5 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cosimo Cecchi <cosimo@endlessm.com>
|
||||||
|
Date: Wed, 25 May 2016 11:54:33 -0700
|
||||||
|
Subject: [PATCH 3/4] keyboard: add an interactive argument to input source
|
||||||
|
activation
|
||||||
|
|
||||||
|
This is useful to differentiate between a change due to user interaction
|
||||||
|
or automatic loading.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=766826
|
||||||
|
---
|
||||||
|
js/ui/status/keyboard.js | 19 +++++++++++--------
|
||||||
|
1 file changed, 11 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||||
|
index 8f45b0d..1020994 100644
|
||||||
|
--- a/js/ui/status/keyboard.js
|
||||||
|
+++ b/js/ui/status/keyboard.js
|
||||||
|
@@ -61,8 +61,8 @@ const InputSource = new Lang.Class({
|
||||||
|
this.emit('changed');
|
||||||
|
},
|
||||||
|
|
||||||
|
- activate: function() {
|
||||||
|
- this.emit('activate');
|
||||||
|
+ activate: function(interactive) {
|
||||||
|
+ this.emit('activate', !!interactive);
|
||||||
|
},
|
||||||
|
|
||||||
|
_getXkbId: function() {
|
||||||
|
@@ -109,7 +109,7 @@ const InputSourcePopup = new Lang.Class({
|
||||||
|
_finish : function() {
|
||||||
|
this.parent();
|
||||||
|
|
||||||
|
- this._items[this._selectedIndex].activate();
|
||||||
|
+ this._items[this._selectedIndex].activate(true);
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
@@ -376,7 +376,7 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
while (!(is = this._inputSources[nextIndex]))
|
||||||
|
nextIndex += 1;
|
||||||
|
|
||||||
|
- is.activate();
|
||||||
|
+ is.activate(true);
|
||||||
|
return true;
|
||||||
|
},
|
||||||
|
|
||||||
|
@@ -420,7 +420,7 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
this._changePerWindowSource();
|
||||||
|
},
|
||||||
|
|
||||||
|
- _activateInputSource: function(is) {
|
||||||
|
+ _activateInputSource: function(is, interactive) {
|
||||||
|
KeyboardManager.holdKeyboard();
|
||||||
|
this._keyboardManager.apply(is.xkbId);
|
||||||
|
|
||||||
|
@@ -541,7 +541,7 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
this._updateMruSources();
|
||||||
|
|
||||||
|
if (this._mruSources.length > 0)
|
||||||
|
- this._mruSources[0].activate();
|
||||||
|
+ this._mruSources[0].activate(false);
|
||||||
|
|
||||||
|
// All ibus engines are preloaded here to reduce the launching time
|
||||||
|
// when users switch the input sources.
|
||||||
|
@@ -650,7 +650,7 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window._currentSource)
|
||||||
|
- window._currentSource.activate();
|
||||||
|
+ window._currentSource.activate(false);
|
||||||
|
},
|
||||||
|
|
||||||
|
_sourcesPerWindowChanged: function() {
|
||||||
|
@@ -771,7 +771,10 @@ const InputSourceIndicator = new Lang.Class({
|
||||||
|
let is = this._inputSourceManager.inputSources[i];
|
||||||
|
|
||||||
|
let menuItem = new LayoutMenuItem(is.displayName, is.shortName);
|
||||||
|
- menuItem.connect('activate', Lang.bind(is, is.activate));
|
||||||
|
+ menuItem.connect('activate', function() {
|
||||||
|
+ is.activate(true);
|
||||||
|
+ });
|
||||||
|
+
|
||||||
|
let indicatorLabel = new St.Label({ text: is.shortName,
|
||||||
|
visible: false });
|
||||||
|
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
From 52c59ac0dd7ddbe064ea4b9873492ec76e289c65 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita@endlessm.com>
|
||||||
|
Date: Fri, 2 Nov 2018 13:51:33 -0700
|
||||||
|
Subject: [PATCH 03/25] power: Label the PENDING_CHARGE state as "Not Charging"
|
||||||
|
|
||||||
|
The pending-charge state means AC power is on but the battery is not
|
||||||
|
being charged. This can happen because its charge is above a certain
|
||||||
|
threshold, to avoid short charging cycles and prolong the battery's
|
||||||
|
life, or because the PSU is not powerful enough to charge the batteries.
|
||||||
|
|
||||||
|
Instead of lying to the user about something being estimated, we should
|
||||||
|
simply tell the truth and set the label to "Not Charging".
|
||||||
|
|
||||||
|
Closes: #701.
|
||||||
|
---
|
||||||
|
js/ui/status/power.js | 4 +++-
|
||||||
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/status/power.js b/js/ui/status/power.js
|
||||||
|
index f21693f53..4a6ce2c24 100644
|
||||||
|
--- a/js/ui/status/power.js
|
||||||
|
+++ b/js/ui/status/power.js
|
||||||
|
@@ -70,7 +70,9 @@ var Indicator = new Lang.Class({
|
||||||
|
seconds = this._proxy.TimeToFull;
|
||||||
|
else if (this._proxy.State == UPower.DeviceState.DISCHARGING)
|
||||||
|
seconds = this._proxy.TimeToEmpty;
|
||||||
|
- // state is one of PENDING_CHARGING, PENDING_DISCHARGING
|
||||||
|
+ else if (this._proxy.State == UPower.DeviceState.PENDING_CHARGE)
|
||||||
|
+ return _("Not Charging");
|
||||||
|
+ // state is PENDING_DISCHARGE
|
||||||
|
else
|
||||||
|
return _("Estimating…");
|
||||||
|
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
123
0004-keyboard-save-the-MRU-input-sources-list-when-switch.patch
Normal file
123
0004-keyboard-save-the-MRU-input-sources-list-when-switch.patch
Normal file
@ -0,0 +1,123 @@
|
|||||||
|
From 2ea6ae05e579e07f03063e10e560c1339f6599c8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cosimo Cecchi <cosimo@endlessm.com>
|
||||||
|
Date: Mon, 23 May 2016 16:24:50 -0700
|
||||||
|
Subject: [PATCH 4/4] keyboard: save the MRU input sources list when switching
|
||||||
|
|
||||||
|
And restore it when reloading the current list of sources, if
|
||||||
|
appropriate.
|
||||||
|
|
||||||
|
https://bugzilla.gnome.org/show_bug.cgi?id=766826
|
||||||
|
---
|
||||||
|
js/ui/status/keyboard.js | 61 ++++++++++++++++++++++++++++++++++++++++++++++++
|
||||||
|
1 file changed, 61 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
||||||
|
index 1020994..d4b14d5 100644
|
||||||
|
--- a/js/ui/status/keyboard.js
|
||||||
|
+++ b/js/ui/status/keyboard.js
|
||||||
|
@@ -159,6 +159,14 @@ const InputSourceSettings = new Lang.Class({
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
|
||||||
|
+ get mruSources() {
|
||||||
|
+ return [];
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
+ set mruSources(sourcesList) {
|
||||||
|
+ // do nothing
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
get keyboardOptions() {
|
||||||
|
return [];
|
||||||
|
},
|
||||||
|
@@ -251,6 +259,7 @@ const InputSourceSessionSettings = new Lang.Class({
|
||||||
|
|
||||||
|
_DESKTOP_INPUT_SOURCES_SCHEMA: 'org.gnome.desktop.input-sources',
|
||||||
|
_KEY_INPUT_SOURCES: 'sources',
|
||||||
|
+ _KEY_MRU_SOURCES: 'mru-sources',
|
||||||
|
_KEY_KEYBOARD_OPTIONS: 'xkb-options',
|
||||||
|
_KEY_PER_WINDOW: 'per-window',
|
||||||
|
|
||||||
|
@@ -277,6 +286,15 @@ const InputSourceSessionSettings = new Lang.Class({
|
||||||
|
return this._getSourcesList(this._KEY_INPUT_SOURCES);
|
||||||
|
},
|
||||||
|
|
||||||
|
+ get mruSources() {
|
||||||
|
+ return this._getSourcesList(this._KEY_MRU_SOURCES);
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
+ set mruSources(sourcesList) {
|
||||||
|
+ let sources = GLib.Variant.new('a(ss)', sourcesList);
|
||||||
|
+ this._settings.set_value(this._KEY_MRU_SOURCES, sources);
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
get keyboardOptions() {
|
||||||
|
return this._settings.get_strv(this._KEY_KEYBOARD_OPTIONS);
|
||||||
|
},
|
||||||
|
@@ -404,6 +422,25 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
this._keyboardManager.reapply();
|
||||||
|
},
|
||||||
|
|
||||||
|
+ _updateMruSettings: function() {
|
||||||
|
+ // If IBus is not ready we don't have a full picture of all
|
||||||
|
+ // the available sources, so don't update the setting
|
||||||
|
+ if (!this._ibusReady)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ // If IBus is temporarily disabled, don't update the setting
|
||||||
|
+ if (this._disableIBus)
|
||||||
|
+ return;
|
||||||
|
+
|
||||||
|
+ let sourcesList = [];
|
||||||
|
+ for (let i = 0; i < this._mruSources.length; ++i) {
|
||||||
|
+ let source = this._mruSources[i];
|
||||||
|
+ sourcesList.push([source.type, source.id]);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ this._settings.mruSources = sourcesList;
|
||||||
|
+ },
|
||||||
|
+
|
||||||
|
_currentInputSourceChanged: function(newSource) {
|
||||||
|
let oldSource;
|
||||||
|
[oldSource, this._currentSource] = [this._currentSource, newSource];
|
||||||
|
@@ -438,6 +475,9 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
|
||||||
|
this._ibusManager.setEngine(engine, KeyboardManager.releaseKeyboard);
|
||||||
|
this._currentInputSourceChanged(is);
|
||||||
|
+
|
||||||
|
+ if (interactive)
|
||||||
|
+ this._updateMruSettings();
|
||||||
|
},
|
||||||
|
|
||||||
|
_updateMruSources: function() {
|
||||||
|
@@ -452,6 +492,27 @@ const InputSourceManager = new Lang.Class({
|
||||||
|
this._mruSourcesBackup = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
+ // Initialize from settings when we have no MRU sources list
|
||||||
|
+ if (this._mruSources.length == 0) {
|
||||||
|
+ let mruSettings = this._settings.mruSources;
|
||||||
|
+ for (let i = 0; i < mruSettings.length; i++) {
|
||||||
|
+ let mruSettingSource = mruSettings[i];
|
||||||
|
+ let mruSource = null;
|
||||||
|
+
|
||||||
|
+ for (let j = 0; j < sourcesList.length; j++) {
|
||||||
|
+ let source = sourcesList[j];
|
||||||
|
+ if (source.type == mruSettingSource.type &&
|
||||||
|
+ source.id == mruSettingSource.id) {
|
||||||
|
+ mruSource = source;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ if (mruSource)
|
||||||
|
+ this._mruSources.push(mruSource);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
let mruSources = [];
|
||||||
|
for (let i = 0; i < this._mruSources.length; i++) {
|
||||||
|
for (let j = 0; j < sourcesList.length; j++)
|
||||||
|
--
|
||||||
|
2.7.4
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 74bb9e62492bacda372904d30891eb97685e9b0c Mon Sep 17 00:00:00 2001
|
From 74bb9e62492bacda372904d30891eb97685e9b0c Mon Sep 17 00:00:00 2001
|
||||||
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
Date: Thu, 15 Nov 2018 18:47:55 +0100
|
Date: Thu, 15 Nov 2018 18:47:55 +0100
|
||||||
Subject: [PATCH] ibusManager: Don't pass undefined callback to ibus
|
Subject: [PATCH 07/25] ibusManager: Don't pass undefined callback to ibus
|
||||||
|
|
||||||
Since commit 551e8278416, we don't always pass a callback parameter.
|
Since commit 551e8278416, we don't always pass a callback parameter.
|
||||||
However passing it on as undefined to ibus doesn't work, as gjs doesn't
|
However passing it on as undefined to ibus doesn't work, as gjs doesn't
|
||||||
@ -29,5 +29,5 @@ index 34f198c35..33ad8777e 100644
|
|||||||
|
|
||||||
preloadEngines(ids) {
|
preloadEngines(ids) {
|
||||||
--
|
--
|
||||||
2.19.1
|
2.20.0
|
||||||
|
|
@ -0,0 +1,40 @@
|
|||||||
|
From e77463b875311ff35bb94daadf2d96cb1886e2c1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Fri, 16 Nov 2018 11:39:08 +0100
|
||||||
|
Subject: [PATCH 08/25] altSwitcher: Fix error when all alternatives are
|
||||||
|
disabled
|
||||||
|
|
||||||
|
While we do consider the case that we don't have a child to show for the
|
||||||
|
visibility, we are still trying to move the click action unconditionally.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/issues/783
|
||||||
|
---
|
||||||
|
js/ui/status/system.js | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/status/system.js b/js/ui/status/system.js
|
||||||
|
index c695f37be..41bcacd94 100644
|
||||||
|
--- a/js/ui/status/system.js
|
||||||
|
+++ b/js/ui/status/system.js
|
||||||
|
@@ -58,6 +58,9 @@ var AltSwitcher = new Lang.Class({
|
||||||
|
childToShow = this._standard;
|
||||||
|
} else if (this._alternate.visible) {
|
||||||
|
childToShow = this._alternate;
|
||||||
|
+ } else {
|
||||||
|
+ this.actor.hide();
|
||||||
|
+ return;
|
||||||
|
}
|
||||||
|
|
||||||
|
let childShown = this.actor.get_child();
|
||||||
|
@@ -79,7 +82,7 @@ var AltSwitcher = new Lang.Class({
|
||||||
|
global.sync_pointer();
|
||||||
|
}
|
||||||
|
|
||||||
|
- this.actor.visible = (childToShow != null);
|
||||||
|
+ this.actor.show();
|
||||||
|
},
|
||||||
|
|
||||||
|
_onDestroy() {
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
30
0009-dash-destroy-items-s-child-before-tooltip.patch
Normal file
30
0009-dash-destroy-items-s-child-before-tooltip.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
From ff2fbf5ae40561b403b721e932d1bc5492532156 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Andrea Azzarone <azzaronea@gmail.com>
|
||||||
|
Date: Fri, 16 Nov 2018 18:31:56 +0000
|
||||||
|
Subject: [PATCH 09/25] dash: destroy items's child before tooltip
|
||||||
|
|
||||||
|
Destroy the DashItemContainer's child from the same handler as the tooltip. This
|
||||||
|
will prevent invalid reads when the item is destroyed while its quicklist is
|
||||||
|
still open.
|
||||||
|
|
||||||
|
Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/781
|
||||||
|
---
|
||||||
|
js/ui/dash.js | 2 ++
|
||||||
|
1 file changed, 2 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/js/ui/dash.js b/js/ui/dash.js
|
||||||
|
index 60d030941..ce970a610 100644
|
||||||
|
--- a/js/ui/dash.js
|
||||||
|
+++ b/js/ui/dash.js
|
||||||
|
@@ -55,6 +55,8 @@ var DashItemContainer = new Lang.Class({
|
||||||
|
this.animatingOut = false;
|
||||||
|
|
||||||
|
this.connect('destroy', () => {
|
||||||
|
+ if (this.child != null)
|
||||||
|
+ this.child.destroy();
|
||||||
|
this.label.destroy();
|
||||||
|
});
|
||||||
|
},
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
172
0010-theme-Replace-corner-ripple-png-assets-with-css.patch
Normal file
172
0010-theme-Replace-corner-ripple-png-assets-with-css.patch
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
From 8e7c90b930fd6bd52bfc0976d6e0750a48219cb4 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam Hewitt <sam@snwh.org>
|
||||||
|
Date: Fri, 16 Nov 2018 14:05:05 -0500
|
||||||
|
Subject: [PATCH 10/25] theme: Replace corner ripple png assets with css
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/298
|
||||||
|
---
|
||||||
|
data/gnome-shell-theme.gresource.xml | 2 --
|
||||||
|
data/theme/corner-ripple-ltr.png | Bin 2493 -> 0 bytes
|
||||||
|
data/theme/corner-ripple-rtl.png | Bin 2386 -> 0 bytes
|
||||||
|
data/theme/gnome-shell-sass/_common.scss | 11 +++++------
|
||||||
|
4 files changed, 5 insertions(+), 8 deletions(-)
|
||||||
|
delete mode 100644 data/theme/corner-ripple-ltr.png
|
||||||
|
delete mode 100644 data/theme/corner-ripple-rtl.png
|
||||||
|
|
||||||
|
diff --git a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
|
||||||
|
index c99b71ddf..e292d33a3 100644
|
||||||
|
--- a/data/gnome-shell-theme.gresource.xml
|
||||||
|
+++ b/data/gnome-shell-theme.gresource.xml
|
||||||
|
@@ -11,8 +11,6 @@
|
||||||
|
<file>close-window.svg</file>
|
||||||
|
<file>close-window-active.svg</file>
|
||||||
|
<file>close-window-hover.svg</file>
|
||||||
|
- <file>corner-ripple-ltr.png</file>
|
||||||
|
- <file>corner-ripple-rtl.png</file>
|
||||||
|
<file>dash-placeholder.svg</file>
|
||||||
|
<file>gnome-shell.css</file>
|
||||||
|
<file>gnome-shell-high-contrast.css</file>
|
||||||
|
diff --git a/data/theme/corner-ripple-ltr.png b/data/theme/corner-ripple-ltr.png
|
||||||
|
deleted file mode 100644
|
||||||
|
index 326ecaa52e4adc662c8c83f26c79640944eb6def..0000000000000000000000000000000000000000
|
||||||
|
GIT binary patch
|
||||||
|
literal 0
|
||||||
|
HcmV?d00001
|
||||||
|
|
||||||
|
literal 2493
|
||||||
|
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
|
||||||
|
Hu0mjfFmu>C
|
||||||
|
|
||||||
|
diff --git a/data/theme/corner-ripple-rtl.png b/data/theme/corner-ripple-rtl.png
|
||||||
|
deleted file mode 100644
|
||||||
|
index 26cf965f63064f996d5a2e6199bfc154f56fe24c..0000000000000000000000000000000000000000
|
||||||
|
GIT binary patch
|
||||||
|
literal 0
|
||||||
|
HcmV?d00001
|
||||||
|
|
||||||
|
literal 2386
|
||||||
|
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
|
||||||
|
Ef{zodu>b%7
|
||||||
|
|
||||||
|
diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
index 06c50d1d9..829791419 100644
|
||||||
|
--- a/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
+++ b/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
@@ -1142,17 +1142,16 @@ StScrollBar {
|
||||||
|
& > StIcon { icon-size: 16px; }
|
||||||
|
}
|
||||||
|
|
||||||
|
-//Activities Ripples
|
||||||
|
+// Activities Ripples
|
||||||
|
.ripple-box {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
- background-image: url("resource:///org/gnome/shell/theme/corner-ripple-ltr.png");
|
||||||
|
- background-size: contain;
|
||||||
|
+ border-radius: 0 0 52px 0; // radius the size of the box give us the curve
|
||||||
|
+ background-color: lighten(transparentize($selected_bg_color, 0.7), 40%);
|
||||||
|
+ box-shadow: 0 0 2px 2px lighten($selected_bg_color, 20%);
|
||||||
|
}
|
||||||
|
|
||||||
|
-.ripple-box:rtl {
|
||||||
|
- background-image: url("resource:///org/gnome/shell/theme/corner-ripple-rtl.png");
|
||||||
|
-}
|
||||||
|
+.ripple-box:rtl { border-radius: 0 0 0 52px; } // just a simple change to the border radius position
|
||||||
|
|
||||||
|
// not really top bar only
|
||||||
|
.popup-menu-arrow { width: 16px; height: 16px; }
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
361
0011-theme-Replace-page-indicator-assets-with-css.patch
Normal file
361
0011-theme-Replace-page-indicator-assets-with-css.patch
Normal file
@ -0,0 +1,361 @@
|
|||||||
|
From 27c660d2a9204bf423103bc83dc8e2f162b4474b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Sam Hewitt <sam@snwh.org>
|
||||||
|
Date: Fri, 16 Nov 2018 13:44:52 -0500
|
||||||
|
Subject: [PATCH 11/25] theme: Replace page indicator assets with css
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/297
|
||||||
|
---
|
||||||
|
data/gnome-shell-theme.gresource.xml | 4 --
|
||||||
|
data/theme/gnome-shell-sass/_common.scss | 14 +++--
|
||||||
|
data/theme/page-indicator-active.svg | 71 ------------------------
|
||||||
|
data/theme/page-indicator-checked.svg | 67 ----------------------
|
||||||
|
data/theme/page-indicator-hover.svg | 67 ----------------------
|
||||||
|
data/theme/page-indicator-inactive.svg | 67 ----------------------
|
||||||
|
6 files changed, 8 insertions(+), 282 deletions(-)
|
||||||
|
delete mode 100644 data/theme/page-indicator-active.svg
|
||||||
|
delete mode 100644 data/theme/page-indicator-checked.svg
|
||||||
|
delete mode 100644 data/theme/page-indicator-hover.svg
|
||||||
|
delete mode 100644 data/theme/page-indicator-inactive.svg
|
||||||
|
|
||||||
|
diff --git a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
|
||||||
|
index e292d33a3..451d0980e 100644
|
||||||
|
--- a/data/gnome-shell-theme.gresource.xml
|
||||||
|
+++ b/data/gnome-shell-theme.gresource.xml
|
||||||
|
@@ -25,10 +25,6 @@
|
||||||
|
<file>no-notifications.svg</file>
|
||||||
|
<file>noise-texture.png</file>
|
||||||
|
<file>pad-osd.css</file>
|
||||||
|
- <file>page-indicator-active.svg</file>
|
||||||
|
- <file>page-indicator-inactive.svg</file>
|
||||||
|
- <file>page-indicator-checked.svg</file>
|
||||||
|
- <file>page-indicator-hover.svg</file>
|
||||||
|
<file>process-working.svg</file>
|
||||||
|
<file>toggle-off-us.svg</file>
|
||||||
|
<file>toggle-off-intl.svg</file>
|
||||||
|
diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
index 829791419..c905b3b75 100644
|
||||||
|
--- a/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
+++ b/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
@@ -1446,15 +1446,17 @@ StScrollBar {
|
||||||
|
padding: 15px 20px;
|
||||||
|
|
||||||
|
.page-indicator-icon {
|
||||||
|
- width: 18px;
|
||||||
|
- height: 18px;
|
||||||
|
- background-image: url(resource:///org/gnome/shell/theme/page-indicator-inactive.svg);
|
||||||
|
+ width: 12px;
|
||||||
|
+ height: 12px;
|
||||||
|
+ background-color: transparent;
|
||||||
|
+ border: 2px solid rgba(255, 255, 255, 0.4);
|
||||||
|
+ border-radius:12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
- &:hover .page-indicator-icon { background-image: url(resource:///org/gnome/shell/theme/page-indicator-hover.svg); }
|
||||||
|
- &:active .page-indicator-icon { background-image: url(resource:///org/gnome/shell/theme/page-indicator-active.svg); }
|
||||||
|
+ &:hover .page-indicator-icon { border-color: white; }
|
||||||
|
+ &:active .page-indicator-icon { border: none; margin: 2px; background-color:#fff; }
|
||||||
|
&:checked .page-indicator-icon,
|
||||||
|
- &:checked:active { background-image: url(resource:///org/gnome/shell/theme/page-indicator-checked.svg); }
|
||||||
|
+ &:checked:active { background-color: #fff;}
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-frequent-applications-label { @extend %status_text; }
|
||||||
|
diff --git a/data/theme/page-indicator-active.svg b/data/theme/page-indicator-active.svg
|
||||||
|
deleted file mode 100644
|
||||||
|
index 51a76024e..000000000
|
||||||
|
--- a/data/theme/page-indicator-active.svg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,71 +0,0 @@
|
||||||
|
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
-
|
||||||
|
-<svg
|
||||||
|
- xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
- xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
- xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
- width="18"
|
||||||
|
- height="18"
|
||||||
|
- id="svg4703"
|
||||||
|
- version="1.1"
|
||||||
|
- inkscape:version="0.48.4 r9939"
|
||||||
|
- sodipodi:docname="page-indicator-pushed.svg">
|
||||||
|
- <defs
|
||||||
|
- id="defs4705" />
|
||||||
|
- <sodipodi:namedview
|
||||||
|
- id="base"
|
||||||
|
- pagecolor="#ffffff"
|
||||||
|
- bordercolor="#666666"
|
||||||
|
- borderopacity="1.0"
|
||||||
|
- inkscape:pageopacity="0.0"
|
||||||
|
- inkscape:pageshadow="2"
|
||||||
|
- inkscape:zoom="31.392433"
|
||||||
|
- inkscape:cx="1.0245308"
|
||||||
|
- inkscape:cy="13.3715"
|
||||||
|
- inkscape:current-layer="layer1"
|
||||||
|
- showgrid="true"
|
||||||
|
- inkscape:grid-bbox="true"
|
||||||
|
- inkscape:document-units="px"
|
||||||
|
- inkscape:window-width="2560"
|
||||||
|
- inkscape:window-height="1374"
|
||||||
|
- inkscape:window-x="0"
|
||||||
|
- inkscape:window-y="27"
|
||||||
|
- inkscape:window-maximized="1">
|
||||||
|
- <inkscape:grid
|
||||||
|
- type="xygrid"
|
||||||
|
- id="grid6140" />
|
||||||
|
- </sodipodi:namedview>
|
||||||
|
- <metadata
|
||||||
|
- id="metadata4708">
|
||||||
|
- <rdf:RDF>
|
||||||
|
- <cc:Work
|
||||||
|
- rdf:about="">
|
||||||
|
- <dc:format>image/svg+xml</dc:format>
|
||||||
|
- <dc:type
|
||||||
|
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
- <dc:title></dc:title>
|
||||||
|
- </cc:Work>
|
||||||
|
- </rdf:RDF>
|
||||||
|
- </metadata>
|
||||||
|
- <g
|
||||||
|
- id="layer1"
|
||||||
|
- inkscape:label="Layer 1"
|
||||||
|
- inkscape:groupmode="layer"
|
||||||
|
- transform="translate(0,2)">
|
||||||
|
- <path
|
||||||
|
- transform="matrix(0.54617904,0,0,0.62523128,-1131.9904,-392.39214)"
|
||||||
|
- d="m 2099.9808,638.83099 a 10.985409,9.5964489 0 1 1 -21.9708,0 10.985409,9.5964489 0 1 1 21.9708,0 z"
|
||||||
|
- sodipodi:ry="9.5964489"
|
||||||
|
- sodipodi:rx="10.985409"
|
||||||
|
- sodipodi:cy="638.83099"
|
||||||
|
- sodipodi:cx="2088.9954"
|
||||||
|
- id="path4711"
|
||||||
|
- style="fill:#fdffff;fill-opacity:1;stroke:none"
|
||||||
|
- sodipodi:type="arc" />
|
||||||
|
- </g>
|
||||||
|
-</svg>
|
||||||
|
diff --git a/data/theme/page-indicator-checked.svg b/data/theme/page-indicator-checked.svg
|
||||||
|
deleted file mode 100644
|
||||||
|
index 38b720f86..000000000
|
||||||
|
--- a/data/theme/page-indicator-checked.svg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,67 +0,0 @@
|
||||||
|
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
-
|
||||||
|
-<svg
|
||||||
|
- xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
- xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
- xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
- width="18"
|
||||||
|
- height="18"
|
||||||
|
- id="svg4703"
|
||||||
|
- version="1.1"
|
||||||
|
- inkscape:version="0.48.4 r9939"
|
||||||
|
- sodipodi:docname="page-indicator-active.svg">
|
||||||
|
- <defs
|
||||||
|
- id="defs4705" />
|
||||||
|
- <sodipodi:namedview
|
||||||
|
- id="base"
|
||||||
|
- pagecolor="#ffffff"
|
||||||
|
- bordercolor="#666666"
|
||||||
|
- borderopacity="1.0"
|
||||||
|
- inkscape:pageopacity="0.0"
|
||||||
|
- inkscape:pageshadow="2"
|
||||||
|
- inkscape:zoom="22.197802"
|
||||||
|
- inkscape:cx="2.1522887"
|
||||||
|
- inkscape:cy="16.782904"
|
||||||
|
- inkscape:current-layer="layer1"
|
||||||
|
- showgrid="true"
|
||||||
|
- inkscape:grid-bbox="true"
|
||||||
|
- inkscape:document-units="px"
|
||||||
|
- inkscape:window-width="1920"
|
||||||
|
- inkscape:window-height="1021"
|
||||||
|
- inkscape:window-x="0"
|
||||||
|
- inkscape:window-y="27"
|
||||||
|
- inkscape:window-maximized="1" />
|
||||||
|
- <metadata
|
||||||
|
- id="metadata4708">
|
||||||
|
- <rdf:RDF>
|
||||||
|
- <cc:Work
|
||||||
|
- rdf:about="">
|
||||||
|
- <dc:format>image/svg+xml</dc:format>
|
||||||
|
- <dc:type
|
||||||
|
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
- <dc:title />
|
||||||
|
- </cc:Work>
|
||||||
|
- </rdf:RDF>
|
||||||
|
- </metadata>
|
||||||
|
- <g
|
||||||
|
- id="layer1"
|
||||||
|
- inkscape:label="Layer 1"
|
||||||
|
- inkscape:groupmode="layer"
|
||||||
|
- transform="translate(0,2)">
|
||||||
|
- <path
|
||||||
|
- transform="matrix(0.72823872,0,0,0.8336417,-1512.2872,-525.55618)"
|
||||||
|
- d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
|
||||||
|
- sodipodi:ry="9.5964489"
|
||||||
|
- sodipodi:rx="10.985409"
|
||||||
|
- sodipodi:cy="638.83099"
|
||||||
|
- sodipodi:cx="2088.9954"
|
||||||
|
- id="path4711"
|
||||||
|
- style="fill:#fdffff;fill-opacity:0.94117647;stroke:none"
|
||||||
|
- sodipodi:type="arc" />
|
||||||
|
- </g>
|
||||||
|
-</svg>
|
||||||
|
diff --git a/data/theme/page-indicator-hover.svg b/data/theme/page-indicator-hover.svg
|
||||||
|
deleted file mode 100644
|
||||||
|
index a4ea72ffd..000000000
|
||||||
|
--- a/data/theme/page-indicator-hover.svg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,67 +0,0 @@
|
||||||
|
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
-
|
||||||
|
-<svg
|
||||||
|
- xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
- xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
- xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
- width="18"
|
||||||
|
- height="18"
|
||||||
|
- id="svg5266"
|
||||||
|
- version="1.1"
|
||||||
|
- inkscape:version="0.48.4 r9939"
|
||||||
|
- sodipodi:docname="page-indicator-inactive.svg">
|
||||||
|
- <defs
|
||||||
|
- id="defs5268" />
|
||||||
|
- <sodipodi:namedview
|
||||||
|
- id="base"
|
||||||
|
- pagecolor="#ffffff"
|
||||||
|
- bordercolor="#666666"
|
||||||
|
- borderopacity="1.0"
|
||||||
|
- inkscape:pageopacity="0"
|
||||||
|
- inkscape:pageshadow="2"
|
||||||
|
- inkscape:zoom="11.313709"
|
||||||
|
- inkscape:cx="-2.307566"
|
||||||
|
- inkscape:cy="17.859535"
|
||||||
|
- inkscape:current-layer="layer1"
|
||||||
|
- showgrid="true"
|
||||||
|
- inkscape:grid-bbox="true"
|
||||||
|
- inkscape:document-units="px"
|
||||||
|
- inkscape:window-width="2560"
|
||||||
|
- inkscape:window-height="1374"
|
||||||
|
- inkscape:window-x="0"
|
||||||
|
- inkscape:window-y="27"
|
||||||
|
- inkscape:window-maximized="1" />
|
||||||
|
- <metadata
|
||||||
|
- id="metadata5271">
|
||||||
|
- <rdf:RDF>
|
||||||
|
- <cc:Work
|
||||||
|
- rdf:about="">
|
||||||
|
- <dc:format>image/svg+xml</dc:format>
|
||||||
|
- <dc:type
|
||||||
|
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
- <dc:title></dc:title>
|
||||||
|
- </cc:Work>
|
||||||
|
- </rdf:RDF>
|
||||||
|
- </metadata>
|
||||||
|
- <g
|
||||||
|
- id="layer1"
|
||||||
|
- inkscape:label="Layer 1"
|
||||||
|
- inkscape:groupmode="layer"
|
||||||
|
- transform="translate(0,2)">
|
||||||
|
- <path
|
||||||
|
- sodipodi:type="arc"
|
||||||
|
- style="fill:none;fill-opacity:0;stroke:#ffffff;stroke-width:2.93356276000000005;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
- id="path5274"
|
||||||
|
- sodipodi:cx="2088.9954"
|
||||||
|
- sodipodi:cy="638.83099"
|
||||||
|
- sodipodi:rx="10.985409"
|
||||||
|
- sodipodi:ry="9.5964489"
|
||||||
|
- d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
|
||||||
|
- transform="matrix(0.63720887,0,0,0.72943648,-1322.1264,-458.98661)" />
|
||||||
|
- </g>
|
||||||
|
-</svg>
|
||||||
|
diff --git a/data/theme/page-indicator-inactive.svg b/data/theme/page-indicator-inactive.svg
|
||||||
|
deleted file mode 100644
|
||||||
|
index 4ff2246c8..000000000
|
||||||
|
--- a/data/theme/page-indicator-inactive.svg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,67 +0,0 @@
|
||||||
|
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
-
|
||||||
|
-<svg
|
||||||
|
- xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
- xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
- xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
- width="18"
|
||||||
|
- height="18"
|
||||||
|
- id="svg5266"
|
||||||
|
- version="1.1"
|
||||||
|
- inkscape:version="0.48.4 r9939"
|
||||||
|
- sodipodi:docname="page-indicator-inactive.svg">
|
||||||
|
- <defs
|
||||||
|
- id="defs5268" />
|
||||||
|
- <sodipodi:namedview
|
||||||
|
- id="base"
|
||||||
|
- pagecolor="#ffffff"
|
||||||
|
- bordercolor="#666666"
|
||||||
|
- borderopacity="1.0"
|
||||||
|
- inkscape:pageopacity="0"
|
||||||
|
- inkscape:pageshadow="2"
|
||||||
|
- inkscape:zoom="11.313709"
|
||||||
|
- inkscape:cx="-2.307566"
|
||||||
|
- inkscape:cy="17.859535"
|
||||||
|
- inkscape:current-layer="layer1"
|
||||||
|
- showgrid="true"
|
||||||
|
- inkscape:grid-bbox="true"
|
||||||
|
- inkscape:document-units="px"
|
||||||
|
- inkscape:window-width="2560"
|
||||||
|
- inkscape:window-height="1374"
|
||||||
|
- inkscape:window-x="0"
|
||||||
|
- inkscape:window-y="27"
|
||||||
|
- inkscape:window-maximized="1" />
|
||||||
|
- <metadata
|
||||||
|
- id="metadata5271">
|
||||||
|
- <rdf:RDF>
|
||||||
|
- <cc:Work
|
||||||
|
- rdf:about="">
|
||||||
|
- <dc:format>image/svg+xml</dc:format>
|
||||||
|
- <dc:type
|
||||||
|
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
- <dc:title />
|
||||||
|
- </cc:Work>
|
||||||
|
- </rdf:RDF>
|
||||||
|
- </metadata>
|
||||||
|
- <g
|
||||||
|
- id="layer1"
|
||||||
|
- inkscape:label="Layer 1"
|
||||||
|
- inkscape:groupmode="layer"
|
||||||
|
- transform="translate(0,2)">
|
||||||
|
- <path
|
||||||
|
- sodipodi:type="arc"
|
||||||
|
- style="fill:none;fill-opacity:0;stroke:#ffffff;stroke-width:2.93356276000000005;stroke-miterlimit:4;stroke-opacity:0.39215686000000000;stroke-dasharray:none"
|
||||||
|
- id="path5274"
|
||||||
|
- sodipodi:cx="2088.9954"
|
||||||
|
- sodipodi:cy="638.83099"
|
||||||
|
- sodipodi:rx="10.985409"
|
||||||
|
- sodipodi:ry="9.5964489"
|
||||||
|
- d="m 2099.9808,638.83099 c 0,5.29998 -4.9184,9.59645 -10.9854,9.59645 -6.0671,0 -10.9854,-4.29647 -10.9854,-9.59645 0,-5.29997 4.9183,-9.59645 10.9854,-9.59645 6.067,0 10.9854,4.29648 10.9854,9.59645 z"
|
||||||
|
- transform="matrix(0.63720887,0,0,0.72943648,-1322.1264,-458.98661)" />
|
||||||
|
- </g>
|
||||||
|
-</svg>
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
257
0016-theme-Replace-calendar-arrow-images-with-symbolic-ic.patch
Normal file
257
0016-theme-Replace-calendar-arrow-images-with-symbolic-ic.patch
Normal file
@ -0,0 +1,257 @@
|
|||||||
|
From 3217c10ff272f44d50afc881ce2a2dbb911dc1e8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: daniruiz <daniruizdealegria@gmail.com>
|
||||||
|
Date: Tue, 20 Nov 2018 17:55:31 +0100
|
||||||
|
Subject: [PATCH 16/25] theme: Replace calendar arrow images with symbolic
|
||||||
|
icons and CSS
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/301
|
||||||
|
---
|
||||||
|
data/gnome-shell-theme.gresource.xml | 2 -
|
||||||
|
data/theme/calendar-arrow-left.svg | 82 ------------------------
|
||||||
|
data/theme/calendar-arrow-right.svg | 82 ------------------------
|
||||||
|
data/theme/gnome-shell-sass/_common.scss | 10 +--
|
||||||
|
js/ui/calendar.js | 2 +
|
||||||
|
5 files changed, 4 insertions(+), 174 deletions(-)
|
||||||
|
delete mode 100644 data/theme/calendar-arrow-left.svg
|
||||||
|
delete mode 100644 data/theme/calendar-arrow-right.svg
|
||||||
|
|
||||||
|
diff --git a/data/gnome-shell-theme.gresource.xml b/data/gnome-shell-theme.gresource.xml
|
||||||
|
index 4a4a0edfc..b77825414 100644
|
||||||
|
--- a/data/gnome-shell-theme.gresource.xml
|
||||||
|
+++ b/data/gnome-shell-theme.gresource.xml
|
||||||
|
@@ -1,8 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<gresources>
|
||||||
|
<gresource prefix="/org/gnome/shell/theme">
|
||||||
|
- <file>calendar-arrow-left.svg</file>
|
||||||
|
- <file>calendar-arrow-right.svg</file>
|
||||||
|
<file>calendar-today.svg</file>
|
||||||
|
<file>checkbox-focused.svg</file>
|
||||||
|
<file>checkbox-off-focused.svg</file>
|
||||||
|
diff --git a/data/theme/calendar-arrow-left.svg b/data/theme/calendar-arrow-left.svg
|
||||||
|
deleted file mode 100644
|
||||||
|
index d5d97b3c3..000000000
|
||||||
|
--- a/data/theme/calendar-arrow-left.svg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,82 +0,0 @@
|
||||||
|
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
-
|
||||||
|
-<svg
|
||||||
|
- xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
- xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
- xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
- width="16"
|
||||||
|
- height="16"
|
||||||
|
- id="svg2"
|
||||||
|
- version="1.1"
|
||||||
|
- inkscape:version="0.48+devel r9942 custom"
|
||||||
|
- sodipodi:docname="New document 4">
|
||||||
|
- <defs
|
||||||
|
- id="defs4" />
|
||||||
|
- <sodipodi:namedview
|
||||||
|
- id="base"
|
||||||
|
- pagecolor="#ffffff"
|
||||||
|
- bordercolor="#666666"
|
||||||
|
- borderopacity="1.0"
|
||||||
|
- inkscape:pageopacity="0.0"
|
||||||
|
- inkscape:pageshadow="2"
|
||||||
|
- inkscape:zoom="1"
|
||||||
|
- inkscape:cx="8.984481"
|
||||||
|
- inkscape:cy="5.6224906"
|
||||||
|
- inkscape:document-units="px"
|
||||||
|
- inkscape:current-layer="layer1"
|
||||||
|
- showgrid="false"
|
||||||
|
- borderlayer="true"
|
||||||
|
- inkscape:showpageshadow="false"
|
||||||
|
- inkscape:window-width="930"
|
||||||
|
- inkscape:window-height="681"
|
||||||
|
- inkscape:window-x="1892"
|
||||||
|
- inkscape:window-y="272"
|
||||||
|
- inkscape:window-maximized="0">
|
||||||
|
- <inkscape:grid
|
||||||
|
- type="xygrid"
|
||||||
|
- id="grid17403"
|
||||||
|
- empspacing="5"
|
||||||
|
- visible="true"
|
||||||
|
- enabled="true"
|
||||||
|
- snapvisiblegridlinesonly="true" />
|
||||||
|
- </sodipodi:namedview>
|
||||||
|
- <metadata
|
||||||
|
- id="metadata7">
|
||||||
|
- <rdf:RDF>
|
||||||
|
- <cc:Work
|
||||||
|
- rdf:about="">
|
||||||
|
- <dc:format>image/svg+xml</dc:format>
|
||||||
|
- <dc:type
|
||||||
|
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
- <dc:title></dc:title>
|
||||||
|
- </cc:Work>
|
||||||
|
- </rdf:RDF>
|
||||||
|
- </metadata>
|
||||||
|
- <g
|
||||||
|
- inkscape:label="Layer 1"
|
||||||
|
- inkscape:groupmode="layer"
|
||||||
|
- id="layer1"
|
||||||
|
- transform="translate(0,-1036.3622)">
|
||||||
|
- <path
|
||||||
|
- sodipodi:type="star"
|
||||||
|
- style="fill:#5f5f5f;fill-opacity:1;stroke:#5f5f5f;stroke-width:0.43015847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||||
|
- id="path18028"
|
||||||
|
- sodipodi:sides="3"
|
||||||
|
- sodipodi:cx="84.5"
|
||||||
|
- sodipodi:cy="337.5"
|
||||||
|
- sodipodi:r1="5"
|
||||||
|
- sodipodi:r2="2.5"
|
||||||
|
- sodipodi:arg1="0.52359878"
|
||||||
|
- sodipodi:arg2="1.5707963"
|
||||||
|
- inkscape:flatsided="true"
|
||||||
|
- inkscape:rounded="0"
|
||||||
|
- inkscape:randomized="0"
|
||||||
|
- d="M 88.830127,340 80.169873,340 84.5,332.5 z"
|
||||||
|
- transform="matrix(0,1.3621708,0.99186247,0,-325.48222,929.32667)" />
|
||||||
|
- </g>
|
||||||
|
-</svg>
|
||||||
|
diff --git a/data/theme/calendar-arrow-right.svg b/data/theme/calendar-arrow-right.svg
|
||||||
|
deleted file mode 100644
|
||||||
|
index 545da7ec5..000000000
|
||||||
|
--- a/data/theme/calendar-arrow-right.svg
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1,82 +0,0 @@
|
||||||
|
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
-
|
||||||
|
-<svg
|
||||||
|
- xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
- xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
- xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
- xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns="http://www.w3.org/2000/svg"
|
||||||
|
- xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
- xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
- width="16"
|
||||||
|
- height="16"
|
||||||
|
- id="svg2"
|
||||||
|
- version="1.1"
|
||||||
|
- inkscape:version="0.48+devel r9942 custom"
|
||||||
|
- sodipodi:docname="arrow-left.svg">
|
||||||
|
- <defs
|
||||||
|
- id="defs4" />
|
||||||
|
- <sodipodi:namedview
|
||||||
|
- id="base"
|
||||||
|
- pagecolor="#ffffff"
|
||||||
|
- bordercolor="#666666"
|
||||||
|
- borderopacity="1.0"
|
||||||
|
- inkscape:pageopacity="0.0"
|
||||||
|
- inkscape:pageshadow="2"
|
||||||
|
- inkscape:zoom="1"
|
||||||
|
- inkscape:cx="7.7366092"
|
||||||
|
- inkscape:cy="6.4536271"
|
||||||
|
- inkscape:document-units="px"
|
||||||
|
- inkscape:current-layer="layer1"
|
||||||
|
- showgrid="false"
|
||||||
|
- borderlayer="true"
|
||||||
|
- inkscape:showpageshadow="false"
|
||||||
|
- inkscape:window-width="930"
|
||||||
|
- inkscape:window-height="681"
|
||||||
|
- inkscape:window-x="1892"
|
||||||
|
- inkscape:window-y="272"
|
||||||
|
- inkscape:window-maximized="0">
|
||||||
|
- <inkscape:grid
|
||||||
|
- type="xygrid"
|
||||||
|
- id="grid17403"
|
||||||
|
- empspacing="5"
|
||||||
|
- visible="true"
|
||||||
|
- enabled="true"
|
||||||
|
- snapvisiblegridlinesonly="true" />
|
||||||
|
- </sodipodi:namedview>
|
||||||
|
- <metadata
|
||||||
|
- id="metadata7">
|
||||||
|
- <rdf:RDF>
|
||||||
|
- <cc:Work
|
||||||
|
- rdf:about="">
|
||||||
|
- <dc:format>image/svg+xml</dc:format>
|
||||||
|
- <dc:type
|
||||||
|
- rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
- <dc:title></dc:title>
|
||||||
|
- </cc:Work>
|
||||||
|
- </rdf:RDF>
|
||||||
|
- </metadata>
|
||||||
|
- <g
|
||||||
|
- inkscape:label="Layer 1"
|
||||||
|
- inkscape:groupmode="layer"
|
||||||
|
- id="layer1"
|
||||||
|
- transform="translate(0,-1036.3622)">
|
||||||
|
- <path
|
||||||
|
- sodipodi:type="star"
|
||||||
|
- style="fill:#5f5f5f;fill-opacity:1;stroke:#5f5f5f;stroke-width:0.43015847;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;display:inline"
|
||||||
|
- id="path18028"
|
||||||
|
- sodipodi:sides="3"
|
||||||
|
- sodipodi:cx="84.5"
|
||||||
|
- sodipodi:cy="337.5"
|
||||||
|
- sodipodi:r1="5"
|
||||||
|
- sodipodi:r2="2.5"
|
||||||
|
- sodipodi:arg1="0.52359878"
|
||||||
|
- sodipodi:arg2="1.5707963"
|
||||||
|
- inkscape:flatsided="true"
|
||||||
|
- inkscape:rounded="0"
|
||||||
|
- inkscape:randomized="0"
|
||||||
|
- d="M 88.830127,340 80.169873,340 84.5,332.5 z"
|
||||||
|
- transform="matrix(0,1.3621708,-0.99186247,0,342.48324,929.32667)" />
|
||||||
|
- </g>
|
||||||
|
-</svg>
|
||||||
|
diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
index 528202161..22f9e826e 100644
|
||||||
|
--- a/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
+++ b/data/theme/gnome-shell-sass/_common.scss
|
||||||
|
@@ -938,7 +938,6 @@ StScrollBar {
|
||||||
|
}
|
||||||
|
|
||||||
|
.pager-button {
|
||||||
|
- color: white;
|
||||||
|
background-color: transparent;
|
||||||
|
width: 32px;
|
||||||
|
border-radius: 4px;
|
||||||
|
@@ -946,13 +945,8 @@ StScrollBar {
|
||||||
|
&:active { background-color: transparentize($bg_color,0.95); }
|
||||||
|
}
|
||||||
|
|
||||||
|
- .calendar-change-month-back { //arrow back
|
||||||
|
- background-image: url("resource:///org/gnome/shell/theme/calendar-arrow-left.svg");
|
||||||
|
- &:rtl { background-image: url("resource:///org/gnome/shell/theme/calendar-arrow-right.svg"); }
|
||||||
|
- }
|
||||||
|
- .calendar-change-month-forward { //arrow foreward
|
||||||
|
- background-image: url("resource:///org/gnome/shell/theme/calendar-arrow-right.svg");
|
||||||
|
- &:rtl { background-image: url("resource:///org/gnome/shell/theme/calendar-arrow-left.svg"); }
|
||||||
|
+ .calendar-change-month-back StIcon, .calendar-change-month-forward StIcon { // arrows
|
||||||
|
+ icon-size: 1.09em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.calendar-day-base {
|
||||||
|
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
|
||||||
|
index 432986391..c4d362537 100644
|
||||||
|
--- a/js/ui/calendar.js
|
||||||
|
+++ b/js/ui/calendar.js
|
||||||
|
@@ -446,6 +446,7 @@ var Calendar = new Lang.Class({
|
||||||
|
this._backButton = new St.Button({ style_class: 'calendar-change-month-back pager-button',
|
||||||
|
accessible_name: _("Previous month"),
|
||||||
|
can_focus: true });
|
||||||
|
+ this._backButton.add_actor(new St.Icon({ icon_name: 'pan-start-symbolic' }));
|
||||||
|
this._topBox.add(this._backButton);
|
||||||
|
this._backButton.connect('clicked', this._onPrevMonthButtonClicked.bind(this));
|
||||||
|
|
||||||
|
@@ -456,6 +457,7 @@ var Calendar = new Lang.Class({
|
||||||
|
this._forwardButton = new St.Button({ style_class: 'calendar-change-month-forward pager-button',
|
||||||
|
accessible_name: _("Next month"),
|
||||||
|
can_focus: true });
|
||||||
|
+ this._forwardButton.add_actor(new St.Icon({ icon_name: 'pan-end-symbolic' }));
|
||||||
|
this._topBox.add(this._forwardButton);
|
||||||
|
this._forwardButton.connect('clicked', this._onNextMonthButtonClicked.bind(this));
|
||||||
|
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
43
0017-st-button-Ignore-pointer-emulated-touch-events.patch
Normal file
43
0017-st-button-Ignore-pointer-emulated-touch-events.patch
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
From 4c11d15a074aeca72627c44e327e2dc2afa93ae3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
|
||||||
|
Date: Thu, 25 Oct 2018 06:35:25 +0200
|
||||||
|
Subject: [PATCH 17/25] st-button: Ignore pointer emulated touch events
|
||||||
|
|
||||||
|
In X11, pointer emulated touch events are replicated with normal PRESS, RELEASE
|
||||||
|
pair events which are generated by the server. Thus for a single tap we get:
|
||||||
|
- TOUCH_BEGIN -> TOUCH_END, PRESS -> RELEASE
|
||||||
|
|
||||||
|
This will cause st-button to send two "clicked" signals, instead of just one,
|
||||||
|
breaking extensions (like dash-to-dock) that show buttons in the main stage
|
||||||
|
which will be checked two times or that will receive the same signal two times.
|
||||||
|
---
|
||||||
|
src/st/st-button.c | 7 +++++--
|
||||||
|
1 file changed, 5 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/st/st-button.c b/src/st/st-button.c
|
||||||
|
index 8f5c4922f..a3a7b2442 100644
|
||||||
|
--- a/src/st/st-button.c
|
||||||
|
+++ b/src/st/st-button.c
|
||||||
|
@@ -248,14 +248,17 @@ st_button_touch_event (ClutterActor *actor,
|
||||||
|
if (event->type == CLUTTER_TOUCH_BEGIN && !priv->press_sequence)
|
||||||
|
{
|
||||||
|
clutter_input_device_sequence_grab (device, sequence, actor);
|
||||||
|
- st_button_press (button, device, 0, sequence);
|
||||||
|
+ if (!clutter_event_is_pointer_emulated ((ClutterEvent*) event))
|
||||||
|
+ st_button_press (button, device, 0, sequence);
|
||||||
|
return CLUTTER_EVENT_STOP;
|
||||||
|
}
|
||||||
|
else if (event->type == CLUTTER_TOUCH_END &&
|
||||||
|
priv->device == device &&
|
||||||
|
priv->press_sequence == sequence)
|
||||||
|
{
|
||||||
|
- st_button_release (button, device, mask, 0, sequence);
|
||||||
|
+ if (!clutter_event_is_pointer_emulated ((ClutterEvent*) event))
|
||||||
|
+ st_button_release (button, device, mask, 0, sequence);
|
||||||
|
+
|
||||||
|
clutter_input_device_sequence_ungrab (device, sequence);
|
||||||
|
return CLUTTER_EVENT_STOP;
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
102
0018-iconGrid-Eliminate-JavaScript-for-painting-picking.patch
Normal file
102
0018-iconGrid-Eliminate-JavaScript-for-painting-picking.patch
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
From 0e0574a0b448a28235ec056f2397c4568f5c9338 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Daniel van Vugt <daniel.van.vugt@canonical.com>
|
||||||
|
Date: Fri, 23 Nov 2018 16:43:34 +0800
|
||||||
|
Subject: [PATCH 18/25] iconGrid: Eliminate JavaScript for painting/picking
|
||||||
|
|
||||||
|
The only reason for `vfunc_paint` and `vfunc_pick` existing was to
|
||||||
|
implement a culling optimization. Although that optimization actually
|
||||||
|
made performance worse than none at all because it forced the painting
|
||||||
|
and picking cycles to spend more time calling into JavaScript.
|
||||||
|
|
||||||
|
Turns out we don't have to choose between native code and culling though.
|
||||||
|
Just reimplement the culling using native ClutterActor functions and we
|
||||||
|
get the benefits of both.
|
||||||
|
|
||||||
|
Performance on an i7-7700:
|
||||||
|
|
||||||
|
Moving the cursor over the icon grid:
|
||||||
|
Before: 70% CPU, 5.5ms per frame
|
||||||
|
After : 60% CPU, 4.5ms per frame
|
||||||
|
|
||||||
|
Scrolling the icon grid:
|
||||||
|
Before: 60% CPU, 4.4ms per frame
|
||||||
|
After : 50% CPU, 3.3ms per frame
|
||||||
|
|
||||||
|
Helps with https://gitlab.gnome.org/GNOME/gnome-shell/issues/174
|
||||||
|
---
|
||||||
|
js/ui/iconGrid.js | 29 ++++-------------------------
|
||||||
|
1 file changed, 4 insertions(+), 25 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/iconGrid.js b/js/ui/iconGrid.js
|
||||||
|
index 94387a333..82b335cc5 100644
|
||||||
|
--- a/js/ui/iconGrid.js
|
||||||
|
+++ b/js/ui/iconGrid.js
|
||||||
|
@@ -344,10 +344,10 @@ var IconGrid = new Lang.Class({
|
||||||
|
|
||||||
|
if (this._rowLimit && rowIndex >= this._rowLimit ||
|
||||||
|
this._fillParent && childBox.y2 > availHeight - this.bottomPadding) {
|
||||||
|
- children[i]._skipPaint = true;
|
||||||
|
+ children[i].hide();
|
||||||
|
} else {
|
||||||
|
children[i].allocate(childBox, flags);
|
||||||
|
- children[i]._skipPaint = false;
|
||||||
|
+ children[i].show();
|
||||||
|
}
|
||||||
|
|
||||||
|
columnIndex++;
|
||||||
|
@@ -365,24 +365,6 @@ var IconGrid = new Lang.Class({
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
- vfunc_paint() {
|
||||||
|
- this.paint_background();
|
||||||
|
-
|
||||||
|
- this.get_children().forEach(c => {
|
||||||
|
- if (!c._skipPaint)
|
||||||
|
- c.paint();
|
||||||
|
- });
|
||||||
|
- },
|
||||||
|
-
|
||||||
|
- vfunc_pick(color) {
|
||||||
|
- this.parent(color);
|
||||||
|
-
|
||||||
|
- this.get_children().forEach(c => {
|
||||||
|
- if (!c._skipPaint)
|
||||||
|
- c.paint();
|
||||||
|
- });
|
||||||
|
- },
|
||||||
|
-
|
||||||
|
vfunc_get_paint_volume(paintVolume) {
|
||||||
|
// Setting the paint volume does not make sense when we don't have
|
||||||
|
// any allocation
|
||||||
|
@@ -412,9 +394,6 @@ var IconGrid = new Lang.Class({
|
||||||
|
if (!child.visible)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
- if (child._skipPaint)
|
||||||
|
- continue;
|
||||||
|
-
|
||||||
|
let childVolume = child.get_transformed_paint_volume(this);
|
||||||
|
if (!childVolume)
|
||||||
|
return false
|
||||||
|
@@ -714,7 +693,7 @@ var IconGrid = new Lang.Class({
|
||||||
|
},
|
||||||
|
|
||||||
|
visibleItemsCount() {
|
||||||
|
- return this.get_children().filter(c => !c._skipPaint).length;
|
||||||
|
+ return this.get_children().filter(c => c.is_visible()).length;
|
||||||
|
},
|
||||||
|
|
||||||
|
setSpacing(spacing) {
|
||||||
|
@@ -859,7 +838,7 @@ var PaginatedIconGrid = new Lang.Class({
|
||||||
|
for (let i = 0; i < children.length; i++) {
|
||||||
|
let childBox = this._calculateChildBox(children[i], x, y, box);
|
||||||
|
children[i].allocate(childBox, flags);
|
||||||
|
- children[i]._skipPaint = false;
|
||||||
|
+ children[i].show();
|
||||||
|
|
||||||
|
columnIndex++;
|
||||||
|
if (columnIndex == nColumns) {
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
156
0022-StWidget-don-t-forget-to-invalidate-the-paint-state-.patch
Normal file
156
0022-StWidget-don-t-forget-to-invalidate-the-paint-state-.patch
Normal file
@ -0,0 +1,156 @@
|
|||||||
|
From 6743c18fdfa6dc48fb7d920640debe863018dd38 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Cosimo Cecchi <cosimo@endlessm.com>
|
||||||
|
Date: Tue, 20 Nov 2018 18:25:51 -0800
|
||||||
|
Subject: [PATCH 22/25] StWidget: don't forget to invalidate the paint state if
|
||||||
|
not on stage
|
||||||
|
|
||||||
|
If the actor is not on the stage yet (i.e. does not have a theme
|
||||||
|
node), but has a paint state cached, we currently fail to invalidate
|
||||||
|
it, which will lead to the actor painting with old contents once it
|
||||||
|
gets onto the stage.
|
||||||
|
|
||||||
|
This commit fixes the issue by changing our invalidation strategy;
|
||||||
|
previously we were looking at the widget's own theme node to determine
|
||||||
|
if it should be invalidated or not.
|
||||||
|
Now we look at the theme nodes of our cached paint states. When the
|
||||||
|
widget is mapped on stage, those are the same as the widget's own
|
||||||
|
theme node, but when the widget is not on the stage, we'll still be
|
||||||
|
able to invalidate them.
|
||||||
|
|
||||||
|
As part of this, we move the invalidation API to StThemeNodePaintState,
|
||||||
|
which is a more natural place for our use case.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/314
|
||||||
|
---
|
||||||
|
src/st/st-theme-node-drawing.c | 40 ++++++++++++++++++++++++++++++++++
|
||||||
|
src/st/st-theme-node.h | 3 +++
|
||||||
|
src/st/st-widget.c | 39 +++++----------------------------
|
||||||
|
3 files changed, 49 insertions(+), 33 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
|
||||||
|
index f59065aef..9f7e6b6ca 100644
|
||||||
|
--- a/src/st/st-theme-node-drawing.c
|
||||||
|
+++ b/src/st/st-theme-node-drawing.c
|
||||||
|
@@ -1414,6 +1414,32 @@ st_theme_node_load_background_image (StThemeNode *node)
|
||||||
|
return node->background_texture != COGL_INVALID_HANDLE;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static gboolean
|
||||||
|
+st_theme_node_invalidate_resources_for_file (StThemeNode *node,
|
||||||
|
+ GFile *file)
|
||||||
|
+{
|
||||||
|
+ StBorderImage *border_image;
|
||||||
|
+ gboolean changed = FALSE;
|
||||||
|
+ GFile *theme_file;
|
||||||
|
+
|
||||||
|
+ theme_file = st_theme_node_get_background_image (node);
|
||||||
|
+ if ((theme_file != NULL) && g_file_equal (theme_file, file))
|
||||||
|
+ {
|
||||||
|
+ st_theme_node_invalidate_background_image (node);
|
||||||
|
+ changed = TRUE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ border_image = st_theme_node_get_border_image (node);
|
||||||
|
+ theme_file = border_image ? st_border_image_get_file (border_image) : NULL;
|
||||||
|
+ if ((theme_file != NULL) && g_file_equal (theme_file, file))
|
||||||
|
+ {
|
||||||
|
+ st_theme_node_invalidate_border_image (node);
|
||||||
|
+ changed = TRUE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return changed;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
static void st_theme_node_prerender_shadow (StThemeNodePaintState *state);
|
||||||
|
|
||||||
|
static void
|
||||||
|
@@ -2753,3 +2779,17 @@ st_theme_node_paint_state_invalidate (StThemeNodePaintState *state)
|
||||||
|
state->alloc_width = 0;
|
||||||
|
state->alloc_height = 0;
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+gboolean
|
||||||
|
+st_theme_node_paint_state_invalidate_for_file (StThemeNodePaintState *state,
|
||||||
|
+ GFile *file)
|
||||||
|
+{
|
||||||
|
+ if (state->node != NULL &&
|
||||||
|
+ st_theme_node_invalidate_resources_for_file (state->node, file))
|
||||||
|
+ {
|
||||||
|
+ st_theme_node_paint_state_invalidate (state);
|
||||||
|
+ return TRUE;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return FALSE;
|
||||||
|
+}
|
||||||
|
diff --git a/src/st/st-theme-node.h b/src/st/st-theme-node.h
|
||||||
|
index e71c1d522..1b43c9afe 100644
|
||||||
|
--- a/src/st/st-theme-node.h
|
||||||
|
+++ b/src/st/st-theme-node.h
|
||||||
|
@@ -291,6 +291,9 @@ void st_theme_node_paint_state_free (StThemeNodePaintState *state);
|
||||||
|
void st_theme_node_paint_state_copy (StThemeNodePaintState *state,
|
||||||
|
StThemeNodePaintState *other);
|
||||||
|
void st_theme_node_paint_state_invalidate (StThemeNodePaintState *state);
|
||||||
|
+gboolean st_theme_node_paint_state_invalidate_for_file (StThemeNodePaintState *state,
|
||||||
|
+ GFile *file);
|
||||||
|
+
|
||||||
|
void st_theme_node_paint_state_set_node (StThemeNodePaintState *state,
|
||||||
|
StThemeNode *node);
|
||||||
|
|
||||||
|
diff --git a/src/st/st-widget.c b/src/st/st-widget.c
|
||||||
|
index db984ac9b..7c39b3585 100644
|
||||||
|
--- a/src/st/st-widget.c
|
||||||
|
+++ b/src/st/st-widget.c
|
||||||
|
@@ -289,44 +289,17 @@ st_widget_texture_cache_changed (StTextureCache *cache,
|
||||||
|
{
|
||||||
|
StWidget *actor = ST_WIDGET (user_data);
|
||||||
|
StWidgetPrivate *priv = st_widget_get_instance_private (actor);
|
||||||
|
- StThemeNode *node = priv->theme_node;
|
||||||
|
- StBorderImage *border_image;
|
||||||
|
gboolean changed = FALSE;
|
||||||
|
- GFile *theme_file;
|
||||||
|
-
|
||||||
|
- if (node == NULL)
|
||||||
|
- return;
|
||||||
|
-
|
||||||
|
- theme_file = st_theme_node_get_background_image (node);
|
||||||
|
- if ((theme_file != NULL) && g_file_equal (theme_file, file))
|
||||||
|
- {
|
||||||
|
- st_theme_node_invalidate_background_image (node);
|
||||||
|
- changed = TRUE;
|
||||||
|
- }
|
||||||
|
+ int i;
|
||||||
|
|
||||||
|
- border_image = st_theme_node_get_border_image (node);
|
||||||
|
- theme_file = border_image ? st_border_image_get_file (border_image) : NULL;
|
||||||
|
- if ((theme_file != NULL) && g_file_equal (theme_file, file))
|
||||||
|
+ for (i = 0; i < G_N_ELEMENTS (priv->paint_states); i++)
|
||||||
|
{
|
||||||
|
- st_theme_node_invalidate_border_image (node);
|
||||||
|
- changed = TRUE;
|
||||||
|
+ StThemeNodePaintState *paint_state = &priv->paint_states[i];
|
||||||
|
+ changed |= st_theme_node_paint_state_invalidate_for_file (paint_state, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (changed)
|
||||||
|
- {
|
||||||
|
- /* If we prerender the background / border, we need to update
|
||||||
|
- * the paint state. We should probably implement a method to
|
||||||
|
- * the theme node to determine this, but for now, just wipe
|
||||||
|
- * the entire paint state.
|
||||||
|
- *
|
||||||
|
- * Use the existing state instead of a new one because it's
|
||||||
|
- * assumed the rest of the state will stay the same.
|
||||||
|
- */
|
||||||
|
- st_theme_node_paint_state_invalidate (current_paint_state (actor));
|
||||||
|
-
|
||||||
|
- if (clutter_actor_is_mapped (CLUTTER_ACTOR (actor)))
|
||||||
|
- clutter_actor_queue_redraw (CLUTTER_ACTOR (actor));
|
||||||
|
- }
|
||||||
|
+ if (changed && clutter_actor_is_mapped (CLUTTER_ACTOR (actor)))
|
||||||
|
+ clutter_actor_queue_redraw (CLUTTER_ACTOR (actor));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
36
0023-st-Avoid-integer-overflow-on-unpremultiply.patch
Normal file
36
0023-st-Avoid-integer-overflow-on-unpremultiply.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From 925a25da17986bf60f61bb4e06ec22e2c59fa14f Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Thu, 22 Nov 2018 20:41:44 +0100
|
||||||
|
Subject: [PATCH 23/25] st: Avoid integer overflow on unpremultiply
|
||||||
|
|
||||||
|
When computing the effective border color, we operate on colors with
|
||||||
|
premultiplied alpha to simplify the calculations, then unpremultiply
|
||||||
|
the result. However we miss a bounds check in the last check, so any
|
||||||
|
color component can overflow the allowed maximum of 0xff and shift the
|
||||||
|
result in unexpected ways.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/305
|
||||||
|
---
|
||||||
|
src/st/st-theme-node-drawing.c | 6 +++---
|
||||||
|
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/st/st-theme-node-drawing.c b/src/st/st-theme-node-drawing.c
|
||||||
|
index 9f7e6b6ca..a7fb24ab8 100644
|
||||||
|
--- a/src/st/st-theme-node-drawing.c
|
||||||
|
+++ b/src/st/st-theme-node-drawing.c
|
||||||
|
@@ -229,9 +229,9 @@ unpremultiply (ClutterColor *color)
|
||||||
|
{
|
||||||
|
if (color->alpha != 0)
|
||||||
|
{
|
||||||
|
- color->red = (color->red * 255 + 127) / color->alpha;
|
||||||
|
- color->green = (color->green * 255 + 127) / color->alpha;
|
||||||
|
- color->blue = (color->blue * 255 + 127) / color->alpha;
|
||||||
|
+ color->red = MIN((color->red * 255 + 127) / color->alpha, 255);
|
||||||
|
+ color->green = MIN((color->green * 255 + 127) / color->alpha, 255);
|
||||||
|
+ color->blue = MIN((color->blue * 255 + 127) / color->alpha, 255);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
@ -0,0 +1,47 @@
|
|||||||
|
From e5ce3d541e48dd75c9218312cd74ecb760ab857a Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
|
||||||
|
Date: Thu, 22 Nov 2018 18:18:34 +0100
|
||||||
|
Subject: [PATCH 24/25] messageTray: Re-enable unredirection when banner is
|
||||||
|
destroyed
|
||||||
|
|
||||||
|
The intention of commit 4dc20398 was to disable unredirection while
|
||||||
|
banners are shown, but the ::done-displaying signal currently used for
|
||||||
|
re-enabling unredirection is only emitted under some circumstances, so
|
||||||
|
it's possible that unredirection is left disabled indefinitely, whoops.
|
||||||
|
|
||||||
|
Fix this by tying disabling unredirection explicitly to the lifetime
|
||||||
|
of the banner actor.
|
||||||
|
|
||||||
|
https://gitlab.gnome.org/GNOME/gnome-shell/issues/799
|
||||||
|
---
|
||||||
|
js/ui/messageTray.js | 7 +++----
|
||||||
|
1 file changed, 3 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js
|
||||||
|
index f8e2f0b9f..eebc93fdf 100644
|
||||||
|
--- a/js/ui/messageTray.js
|
||||||
|
+++ b/js/ui/messageTray.js
|
||||||
|
@@ -1298,10 +1298,8 @@ var MessageTray = new Lang.Class({
|
||||||
|
}
|
||||||
|
|
||||||
|
this._banner = this._notification.createBanner();
|
||||||
|
- this._bannerClickedId = this._banner.connect('done-displaying', () => {
|
||||||
|
- Meta.enable_unredirect_for_display(global.display);
|
||||||
|
- this._escapeTray();
|
||||||
|
- });
|
||||||
|
+ this._bannerClickedId = this._banner.connect('done-displaying',
|
||||||
|
+ this._escapeTray.bind(this));
|
||||||
|
this._bannerUnfocusedId = this._banner.connect('unfocused', () => {
|
||||||
|
this._updateState();
|
||||||
|
});
|
||||||
|
@@ -1451,6 +1449,7 @@ var MessageTray = new Lang.Class({
|
||||||
|
|
||||||
|
this._pointerInNotification = false;
|
||||||
|
this._notificationRemoved = false;
|
||||||
|
+ Meta.enable_unredirect_for_display(global.display);
|
||||||
|
|
||||||
|
this._banner.actor.destroy();
|
||||||
|
this._banner = null;
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
@ -0,0 +1,29 @@
|
|||||||
|
From 616852cf2b1f235a5671013fbf3f1564be79ea1b Mon Sep 17 00:00:00 2001
|
||||||
|
From: RyuzakiKK <aasonykk@gmail.com>
|
||||||
|
Date: Fri, 7 Dec 2018 10:51:39 +0100
|
||||||
|
Subject: [PATCH 25/25] thunderbolt: fix missing variable underscore for
|
||||||
|
`enrolling`
|
||||||
|
|
||||||
|
The variable `this.enrolling` is a typo because it has not been defined
|
||||||
|
before and is also never used.
|
||||||
|
`this._enrolling` is what it was meant to be.
|
||||||
|
---
|
||||||
|
js/ui/status/thunderbolt.js | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/js/ui/status/thunderbolt.js b/js/ui/status/thunderbolt.js
|
||||||
|
index 4584748ed..3d7a9614a 100644
|
||||||
|
--- a/js/ui/status/thunderbolt.js
|
||||||
|
+++ b/js/ui/status/thunderbolt.js
|
||||||
|
@@ -195,7 +195,7 @@ var AuthRobot = new Lang.Class({
|
||||||
|
if (this._enrolling)
|
||||||
|
return;
|
||||||
|
|
||||||
|
- this.enrolling = true;
|
||||||
|
+ this._enrolling = true;
|
||||||
|
GLib.idle_add(GLib.PRIORITY_DEFAULT,
|
||||||
|
this._enrollDevicesIdle.bind(this));
|
||||||
|
},
|
||||||
|
--
|
||||||
|
2.20.0
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: gnome-shell
|
Name: gnome-shell
|
||||||
Version: 3.31.2
|
Version: 3.31.2
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
Summary: Window management and application launching for GNOME
|
Summary: Window management and application launching for GNOME
|
||||||
|
|
||||||
Group: User Interface/Desktops
|
Group: User Interface/Desktops
|
||||||
@ -18,9 +18,23 @@ Patch1: gnome-shell-favourite-apps-firefox.patch
|
|||||||
Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch
|
Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch
|
||||||
Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
|
Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
|
||||||
|
|
||||||
# Fix empty input method indicator
|
# Various bugfixes from current git master
|
||||||
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/293
|
Patch4: 0001-windowAttentionHandler-Handle-XUrgencyHint-as-well.patch
|
||||||
Patch4: 0001-ibusManager-Don-t-pass-undefined-callback-to-ibus.patch
|
Patch5: 0002-windowAttentionHandler-Fix-syntax-errors.patch
|
||||||
|
Patch6: 0003-power-Label-the-PENDING_CHARGE-state-as-Not-Charging.patch
|
||||||
|
Patch7: 0007-ibusManager-Don-t-pass-undefined-callback-to-ibus.patch
|
||||||
|
Patch8: 0008-altSwitcher-Fix-error-when-all-alternatives-are-disa.patch
|
||||||
|
Patch9: 0009-dash-destroy-items-s-child-before-tooltip.patch
|
||||||
|
Patch10: 0010-theme-Replace-corner-ripple-png-assets-with-css.patch
|
||||||
|
Patch11: 0011-theme-Replace-page-indicator-assets-with-css.patch
|
||||||
|
Patch12: 0012-theme-Drop-custom-assets-for-window-close-buttons-in.patch
|
||||||
|
Patch13: 0016-theme-Replace-calendar-arrow-images-with-symbolic-ic.patch
|
||||||
|
Patch14: 0017-st-button-Ignore-pointer-emulated-touch-events.patch
|
||||||
|
Patch15: 0018-iconGrid-Eliminate-JavaScript-for-painting-picking.patch
|
||||||
|
Patch16: 0022-StWidget-don-t-forget-to-invalidate-the-paint-state-.patch
|
||||||
|
Patch17: 0023-st-Avoid-integer-overflow-on-unpremultiply.patch
|
||||||
|
Patch18: 0024-messageTray-Re-enable-unredirection-when-banner-is-d.patch
|
||||||
|
Patch19: 0025-thunderbolt-fix-missing-variable-underscore-for-enro.patch
|
||||||
|
|
||||||
%define libcroco_version 0.6.8
|
%define libcroco_version 0.6.8
|
||||||
%define eds_version 3.17.2
|
%define eds_version 3.17.2
|
||||||
@ -218,6 +232,9 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null
|
|||||||
%{_mandir}/man1/%{name}.1.gz
|
%{_mandir}/man1/%{name}.1.gz
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 14 2018 Adam Williamson <awilliam@redhat.com> - 3.31.2-3
|
||||||
|
- Backport several bugfix commits from current git master
|
||||||
|
|
||||||
* Fri Nov 30 2018 Adam Williamson <awilliam@redhat.com> - 3.31.2-2
|
* Fri Nov 30 2018 Adam Williamson <awilliam@redhat.com> - 3.31.2-2
|
||||||
- Backport PR #293 to fix 'empty input method indicator' bug
|
- Backport PR #293 to fix 'empty input method indicator' bug
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user