Update to 3.30.1

This commit is contained in:
Florian Müllner 2018-10-08 21:44:50 +02:00
parent 22f01e4be7
commit ec1d97a717
15 changed files with 10 additions and 822 deletions

1
.gitignore vendored
View File

@ -149,3 +149,4 @@ gnome-shell-2.31.5.tar.bz2
/gnome-shell-3.29.91.tar.xz
/gnome-shell-3.29.92.tar.xz
/gnome-shell-3.30.0.tar.xz
/gnome-shell-3.30.1.tar.xz

View File

@ -1,67 +0,0 @@
From 33ffdd60611e8e8d0018680dd97bcbd0e98c6b4b Mon Sep 17 00:00:00 2001
From: Adam Williamson <awilliam@redhat.com>
Date: Tue, 18 Sep 2018 16:05:42 -0700
Subject: [PATCH] Fix connection to wifi APs from user menu (RH #1628263)
In recent Fedora 29, connecting to wifi access points from the
user menu (top-right menu) does not work. Clicking the 'Connect'
button just animates it but does nothing else. The logs show an
error "JS ERROR: Error: Expected type utf8 for Argument
'specific_object' but got type 'undefined'".
Looking into this, it seems the problem is these uses of the
`path` property of an NMAccessPoint. NMAccessPoint inherits
from NMObject, and NMObject *does* have a path property:
https://developer.gnome.org/libnm/stable/NMObject.html#NMObject--path
so at first glance this seems fine. But I poked around a bit
using libnm via Python (which goes via introspection, just like
this JS code does), and found that indeed AccessPoint objects
don't seem to have a `path` property there either.
Looking at the libnm code, this actually makes sense, because
the property is marked "(skip)":
https://github.com/NetworkManager/NetworkManager/blob/master/libnm/nm-object.c#L1291
and the introspection docs suggest that means it should be left
out of introspected output:
https://wiki.gnome.org/Projects/GObjectIntrospection/Annotations#Symbol_visibility
I'm a bit concerned that this was only found recently - whereas
the change to use `.path` in gnome-shell dates from October 2017
(d71af5e5) and the property has been marked (skip) in NM since
at least 2016 - but this all seems to add up. The obvious fix is
to replace use of `.path` with `.get_path()`, which returns the
path and is *not* marked (skip) and so *is* available via
introspection. I tested that this works in Python and also did
a test build of gnome-shell with this change and installed it on
an affected system, it does seem to fix the bug.
Signed-off-by: Adam Williamson <awilliam@redhat.com>
---
js/ui/status/network.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index b575a726d..d5567dc3c 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -921,10 +921,10 @@ var NMWirelessDialog = new Lang.Class({
// 802.1x-enabled APs require further configuration, so they're
// handled in gnome-control-center
Util.spawn(['gnome-control-center', 'wifi', 'connect-8021x-wifi',
- this._device.get_path(), accessPoints[0].path]);
+ this._device.get_path(), accessPoints[0].get_path()]);
} else {
let connection = new NM.SimpleConnection();
- this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].path, null, null)
+ this._client.add_and_activate_connection_async(connection, this._device, accessPoints[0].get_path(), null, null)
}
}
--
2.19.0

View File

@ -1,220 +0,0 @@
From 3033506f2c266115a00ff43daaad14e59e3215c5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Tue, 5 Dec 2017 22:41:17 +0100
Subject: [PATCH 1/4] dnd: Nullify _dragActor after we've destroyed it, and
avoid invalid access
We need to avoid that we use the _dragActor instance after that it has
been destroyed or we'll get errors. We now set it to null when this
happens, protecting any access to that.
Add a DragState enum-like object to keep track of the state
instead of using booleans.
Remove duplicated handler on 'destroy' and just use a generic one.
https://bugzilla.gnome.org/show_bug.cgi?id=791233
---
js/ui/dnd.js | 65 +++++++++++++++++++++++++++++++---------------------
1 file changed, 39 insertions(+), 26 deletions(-)
diff --git a/js/ui/dnd.js b/js/ui/dnd.js
index 634a7d6d7..8483e89fc 100644
--- a/js/ui/dnd.js
+++ b/js/ui/dnd.js
@@ -27,6 +27,12 @@ var DragMotionResult = {
CONTINUE: 3
};
+var DragState = {
+ INIT: 0,
+ DRAGGING: 1,
+ CANCELLED: 2,
+};
+
var DRAG_CURSOR_MAP = {
0: Meta.Cursor.DND_UNSUPPORTED_TARGET,
1: Meta.Cursor.DND_COPY,
@@ -78,6 +84,8 @@ var _Draggable = new Lang.Class({
dragActorOpacity: undefined });
this.actor = actor;
+ this._dragState = DragState.INIT;
+
if (!params.manualMode) {
this.actor.connect('button-press-event',
this._onButtonPress.bind(this));
@@ -88,7 +96,7 @@ var _Draggable = new Lang.Class({
this.actor.connect('destroy', () => {
this._actorDestroyed = true;
- if (this._dragInProgress && this._dragCancellable)
+ if (this._dragState == DragState.DRAGGING && this._dragCancellable)
this._cancelDrag(global.get_current_time());
this.disconnectAll();
});
@@ -100,7 +108,6 @@ var _Draggable = new Lang.Class({
this._dragActorOpacity = params.dragActorOpacity;
this._buttonDown = false; // The mouse button has been pressed and has not yet been released.
- this._dragInProgress = false; // The drag has been started, and has not been dropped or cancelled yet.
this._animationInProgress = false; // The drag is over and the item is in the process of animating to its original position (snapping back or reverting).
this._dragCancellable = true;
@@ -206,9 +213,10 @@ var _Draggable = new Lang.Class({
(event.type() == Clutter.EventType.TOUCH_END &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
this._buttonDown = false;
- if (this._dragInProgress) {
+ if (this._dragState == DragState.DRAGGING) {
return this._dragActorDropped(event);
- } else if (this._dragActor != null && !this._animationInProgress) {
+ } else if ((this._dragActor != null || this._dragState == DragState.CANCELLED) &&
+ !this._animationInProgress) {
// Drag must have been cancelled with Esc.
this._dragComplete();
return Clutter.EVENT_STOP;
@@ -222,14 +230,14 @@ var _Draggable = new Lang.Class({
} else if (event.type() == Clutter.EventType.MOTION ||
(event.type() == Clutter.EventType.TOUCH_UPDATE &&
global.display.is_pointer_emulating_sequence(event.get_event_sequence()))) {
- if (this._dragInProgress) {
+ if (this._dragActor && this._dragState == DragState.DRAGGING) {
return this._updateDragPosition(event);
- } else if (this._dragActor == null) {
+ } else if (this._dragActor == null && this._dragState != DragState.CANCELLED) {
return this._maybeStartDrag(event);
}
// We intercept KEY_PRESS event so that we can process Esc key press to cancel
// dragging and ignore all other key presses.
- } else if (event.type() == Clutter.EventType.KEY_PRESS && this._dragInProgress) {
+ } else if (event.type() == Clutter.EventType.KEY_PRESS && this._dragState == DragState.DRAGGING) {
let symbol = event.get_key_symbol();
if (symbol == Clutter.Escape) {
this._cancelDrag(event.get_time());
@@ -265,7 +273,7 @@ var _Draggable = new Lang.Class({
*/
startDrag(stageX, stageY, time, sequence) {
currentDraggable = this;
- this._dragInProgress = true;
+ this._dragState = DragState.DRAGGING;
// Special-case St.Button: the pointer grab messes with the internal
// state, so force a reset to a reasonable state here
@@ -342,6 +350,13 @@ var _Draggable = new Lang.Class({
Shell.util_set_hidden_from_pick(this._dragActor, true);
}
+ this._dragActorDestroyId = this._dragActor.connect('destroy', () => {
+ // Cancel ongoing animation (if any)
+ this._finishAnimation();
+
+ this._dragActor = null;
+ this._dragState = DragState.CANCELLED;
+ });
this._dragOrigOpacity = this._dragActor.opacity;
if (this._dragActorOpacity != undefined)
this._dragActor.opacity = this._dragActorOpacity;
@@ -500,7 +515,7 @@ var _Draggable = new Lang.Class({
event.get_time())) {
// If it accepted the drop without taking the actor,
// handle it ourselves.
- if (this._dragActor.get_parent() == Main.uiGroup) {
+ if (this._dragActor && this._dragActor.get_parent() == Main.uiGroup) {
if (this._restoreOnSuccess) {
this._restoreDragActor(event.get_time());
return true;
@@ -508,7 +523,7 @@ var _Draggable = new Lang.Class({
this._dragActor.destroy();
}
- this._dragInProgress = false;
+ this._dragState = DragState.INIT;
global.display.set_cursor(Meta.Cursor.DEFAULT);
this.emit('drag-end', event.get_time(), true);
this._dragComplete();
@@ -557,20 +572,22 @@ var _Draggable = new Lang.Class({
_cancelDrag(eventTime) {
this.emit('drag-cancelled', eventTime);
- this._dragInProgress = false;
- let [snapBackX, snapBackY, snapBackScale] = this._getRestoreLocation();
+ let wasCancelled = (this._dragState == DragState.CANCELLED);
+ this._dragState = DragState.CANCELLED;
- if (this._actorDestroyed) {
+ if (this._actorDestroyed || wasCancelled) {
global.display.set_cursor(Meta.Cursor.DEFAULT);
if (!this._buttonDown)
this._dragComplete();
this.emit('drag-end', eventTime, false);
- if (!this._dragOrigParent)
+ if (!this._dragOrigParent && this._dragActor)
this._dragActor.destroy();
return;
}
+ let [snapBackX, snapBackY, snapBackScale] = this._getRestoreLocation();
+
this._animateDragEnd(eventTime,
{ x: snapBackX,
y: snapBackY,
@@ -581,7 +598,7 @@ var _Draggable = new Lang.Class({
},
_restoreDragActor(eventTime) {
- this._dragInProgress = false;
+ this._dragState = DragState.INIT;
let [restoreX, restoreY, restoreScale] = this._getRestoreLocation();
// fade the actor back in at its original location
@@ -596,12 +613,6 @@ var _Draggable = new Lang.Class({
_animateDragEnd(eventTime, params) {
this._animationInProgress = true;
- // finish animation if the actor gets destroyed
- // during it
- this._dragActorDestroyId =
- this._dragActor.connect('destroy',
- this._finishAnimation.bind(this));
-
params['opacity'] = this._dragOrigOpacity;
params['transition'] = 'easeOutQuad';
params['onComplete'] = this._onAnimationComplete;
@@ -624,9 +635,6 @@ var _Draggable = new Lang.Class({
},
_onAnimationComplete(dragActor, eventTime) {
- dragActor.disconnect(this._dragActorDestroyId);
- this._dragActorDestroyId = 0;
-
if (this._dragOrigParent) {
Main.uiGroup.remove_child(this._dragActor);
this._dragOrigParent.add_actor(this._dragActor);
@@ -641,7 +649,7 @@ var _Draggable = new Lang.Class({
},
_dragComplete() {
- if (!this._actorDestroyed)
+ if (!this._actorDestroyed && this._dragActor)
Shell.util_set_hidden_from_pick(this._dragActor, false);
this._ungrabEvents();
@@ -652,7 +660,12 @@ var _Draggable = new Lang.Class({
this._updateHoverId = 0;
}
- this._dragActor = undefined;
+ if (this._dragActor) {
+ this._dragActor.disconnect(this._dragActorDestroyId);
+ this._dragActor = null;
+ }
+
+ this._dragState = DragState.INIT;
currentDraggable = null;
}
});
--
2.19.0

View File

@ -1,27 +0,0 @@
From 0cf2d396b0d584f59402a6a0c42376639bd314ef Mon Sep 17 00:00:00 2001
From: Andrea Azzarone <andrea.azzarone@canonical.com>
Date: Mon, 17 Sep 2018 18:00:04 +0200
Subject: [PATCH] inputMethod: Add a null-check for text in
vfunc_set_surrounding.
Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/579
---
js/misc/inputMethod.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
index 320a6cc33..ec84f7277 100644
--- a/js/misc/inputMethod.js
+++ b/js/misc/inputMethod.js
@@ -176,7 +176,7 @@ var InputMethod = new Lang.Class({
},
vfunc_set_surrounding(text, cursor, anchor) {
- if (this._context)
+ if (this._context && text)
this._context.set_surrounding_text(text, cursor, anchor);
},
--
2.19.0

View File

@ -1,50 +0,0 @@
From 5d61e2563d183272f604f1a2af635ad5cbdb627e Mon Sep 17 00:00:00 2001
From: Iain Lane <iainl@gnome.org>
Date: Thu, 16 Aug 2018 11:59:36 +0100
Subject: [PATCH] network: Don't assume the active connection has been
processed first
`NMConnectionDevice._sync()` is responsible for setting up the active
connection that we'll end up displaying. It expects the active
connection to already be in a map `_connectionItems`. If it isn't in
there, we get a null dereference and the indicator can get into a weird
state where it doesn't display devices / connections properly.
Let's change this expectation. If there is an active connection,
`_deviceAdded()` will eventually get to it and call `_sync()` to set up
the active connection state. We make `_sync()` tolerate there being no
active connection when it's called.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/140
---
js/ui/status/network.js | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index 3e3d0d1d2..d4a09bc32 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -420,12 +420,14 @@ var NMConnectionDevice = new Lang.Class({
this._deactivateItem.actor.visible = this._device.state > NM.DeviceState.DISCONNECTED;
if (this._activeConnection == null) {
- this._activeConnection = this._device.active_connection;
-
- if (this._activeConnection) {
- ensureActiveConnectionProps(this._activeConnection, this._client);
- let item = this._connectionItems.get(this._activeConnection.connection.get_uuid());
- item.setActiveConnection(this._activeConnection);
+ let activeConnection = this._device.active_connection;
+ if (activeConnection && activeConnection.connection) {
+ let item = this._connectionItems.get(activeConnection.connection.get_uuid());
+ if (item) {
+ this._activeConnection = activeConnection;
+ ensureActiveConnectionProps(this._activeConnection, this._client);
+ item.setActiveConnection(this._activeConnection);
+ }
}
}
--
2.19.0

View File

@ -1,74 +0,0 @@
From 22531384f1737090cf6a72a35bebb6fef4d0b4ac Mon Sep 17 00:00:00 2001
From: Jakub Steiner <jimmac@gmail.com>
Date: Wed, 5 Sep 2018 20:33:56 +0200
Subject: [PATCH] theme: define proper :hover and :active states
- buttons didn't actually have these properly defined
fixes issue #523
---
data/theme/gnome-shell-sass/_common.scss | 5 +++--
data/theme/gnome-shell-sass/_drawing.scss | 8 ++++----
2 files changed, 7 insertions(+), 6 deletions(-)
diff --git a/data/theme/gnome-shell-sass/_common.scss b/data/theme/gnome-shell-sass/_common.scss
index 64f9b0264..37ac36231 100644
--- a/data/theme/gnome-shell-sass/_common.scss
+++ b/data/theme/gnome-shell-sass/_common.scss
@@ -48,17 +48,18 @@ stage {
padding: 4px 32px;
@include button(normal);
&:focus { @include button(focus); }
+ &:hover { @include button(hover); }
&:insensitive { @include button(insensitive); }
&:active { @include button(active); }
-
}
.modal-dialog-linked-button {
border-right-width: 1px;
@include button(normal);
&:insensitive { @include button(insensitive); }
- &:active { @include button(active); }
&:focus { @include button(focus); }
+ &:hover { @include button(hover); }
+ &:active { @include button(active); }
padding: 12px;
&:first-child {
diff --git a/data/theme/gnome-shell-sass/_drawing.scss b/data/theme/gnome-shell-sass/_drawing.scss
index 66d5adab6..7ac18b1bb 100644
--- a/data/theme/gnome-shell-sass/_drawing.scss
+++ b/data/theme/gnome-shell-sass/_drawing.scss
@@ -150,8 +150,8 @@
//
// focused button
//
- $_bg: if($c!=$osd_bg_color, transparentize($c, 0.5),
- $osd_bg_color);
+ $_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
+ lighten($osd_bg_color,3%));
color: $osd_fg_color;
text-shadow: 0 1px black;
@@ -164,7 +164,7 @@
// active osd button
//
$_bg: if($c!=$osd_bg_color, transparentize($c, 0.3),
- lighten($osd_bg_color,10%));
+ lighten($osd_bg_color,3%));
color: white;
border-color: $osd_borders_color;
@@ -182,7 +182,7 @@
color: white;
border-color: $osd_borders_color;
- background-color: darken($_bg,5%);
+ background-color: $selected_bg_color;
// This should be none, but it's creating some issues with borders, so to
// workaround it for now, use inset wich goes through a different code path.
// see https://bugzilla.gnome.org/show_bug.cgi?id=752934
--
2.19.0

View File

@ -1,46 +0,0 @@
From b087752b5539a8cbb1d61979cb069aef8a3475be Mon Sep 17 00:00:00 2001
From: Carlos Garnacho <carlosg@gnome.org>
Date: Thu, 6 Sep 2018 21:50:21 +0200
Subject: [PATCH] windowManager: listen actively to windows being destroyed
during WS switch
Prevents gjs from dealing with already dispose()d objects.
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/539
---
js/ui/windowManager.js | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/js/ui/windowManager.js b/js/ui/windowManager.js
index b6627e253..2295e3010 100644
--- a/js/ui/windowManager.js
+++ b/js/ui/windowManager.js
@@ -1910,6 +1910,14 @@ var WindowManager = new Lang.Class({
actor.visible = visible;
}
}
+
+ for (let i = 0; i < switchData.windows.length; i++) {
+ let w = switchData.windows[i];
+
+ w.windowDestroyId = w.window.connect('destroy', () => {
+ switchData.windows.splice(switchData.windows.indexOf(w), 1);
+ });
+ }
},
_finishWorkspaceSwitch(switchData) {
@@ -1917,9 +1925,8 @@ var WindowManager = new Lang.Class({
for (let i = 0; i < switchData.windows.length; i++) {
let w = switchData.windows[i];
- if (w.window.is_destroyed()) // Window gone
- continue;
+ w.window.disconnect(w.windowDestroyId);
w.window.reparent(w.parent);
if (w.window.get_meta_window().get_workspace() !=
--
2.19.0

View File

@ -1,58 +0,0 @@
From 2d791a51c0f4ec445cf52cdb0ac6a0bf39cef452 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=C3=BCrg=20Billeter?= <j@bitron.ch>
Date: Tue, 11 Sep 2018 12:55:55 +0200
Subject: [PATCH] windowMenu: Port from Meta.ScreenDirection to
Meta.DisplayDirection
Meta.ScreenDirection no longer exists. This fixes window menus on
multi-monitor systems.
JS ERROR: TypeError: Meta.ScreenDirection is undefined
_buildMenu@resource:///org/gnome/shell/ui/windowMenu.js:135:17
---
js/ui/windowMenu.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/js/ui/windowMenu.js b/js/ui/windowMenu.js
index 32e3be698..11d4f17b6 100644
--- a/js/ui/windowMenu.js
+++ b/js/ui/windowMenu.js
@@ -132,7 +132,7 @@ var WindowMenu = new Lang.Class({
if (nMonitors > 1 && monitorIndex >= 0) {
this.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
- let dir = Meta.ScreenDirection.UP;
+ let dir = Meta.DisplayDirection.UP;
let upMonitorIndex =
display.get_monitor_neighbor_index(monitorIndex, dir);
if (upMonitorIndex != -1) {
@@ -141,7 +141,7 @@ var WindowMenu = new Lang.Class({
});
}
- dir = Meta.ScreenDirection.DOWN;
+ dir = Meta.DisplayDirection.DOWN;
let downMonitorIndex =
display.get_monitor_neighbor_index(monitorIndex, dir);
if (downMonitorIndex != -1) {
@@ -150,7 +150,7 @@ var WindowMenu = new Lang.Class({
});
}
- dir = Meta.ScreenDirection.LEFT;
+ dir = Meta.DisplayDirection.LEFT;
let leftMonitorIndex =
display.get_monitor_neighbor_index(monitorIndex, dir);
if (leftMonitorIndex != -1) {
@@ -159,7 +159,7 @@ var WindowMenu = new Lang.Class({
});
}
- dir = Meta.ScreenDirection.RIGHT;
+ dir = Meta.DisplayDirection.RIGHT;
let rightMonitorIndex =
display.get_monitor_neighbor_index(monitorIndex, dir);
if (rightMonitorIndex != -1) {
--
2.19.0

View File

@ -1,32 +0,0 @@
From 87da623d86323a0744b8723e1991f053586defaf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Wed, 4 Jul 2018 15:56:25 +0200
Subject: [PATCH 2/4] messageList: stop syncing if closeButton has been
destroyed
The _sync function for Message only updates the close button visibility,
so we can safely stop doing that if the close button get get destroyed earlier
(as it happens when clicking on it).
https://bugzilla.gnome.org/show_bug.cgi?id=791233
---
js/ui/messageList.js | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/js/ui/messageList.js b/js/ui/messageList.js
index 3b3c2b6df..547135a1f 100644
--- a/js/ui/messageList.js
+++ b/js/ui/messageList.js
@@ -363,7 +363,8 @@ var Message = new Lang.Class({
this.setBody(body);
this._closeButton.connect('clicked', this.close.bind(this));
- this.actor.connect('notify::hover', this._sync.bind(this));
+ let actorHoverId = this.actor.connect('notify::hover', this._sync.bind(this));
+ this._closeButton.connect('destroy', this.actor.disconnect.bind(this.actor, actorHoverId));
this.actor.connect('clicked', this._onClicked.bind(this));
this.actor.connect('destroy', this._onDestroy.bind(this));
this._sync();
--
2.19.0

View File

@ -1,44 +0,0 @@
From 9c41736a813354fd9291177b12f6c4f85bd1c5f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
Date: Wed, 4 Jul 2018 16:55:28 +0200
Subject: [PATCH 3/4] automountManager: remove allowAutorun expire timeout on
volume removal
If the volume is removed before AUTORUN_EXPIRE_TIMEOUT_SECS seconds, we can stop
the timeout earlier as there's nothing to unset, while the volume instance
won't be valid anymore.
https://bugzilla.gnome.org/show_bug.cgi?id=791233
---
js/ui/components/automountManager.js | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/js/ui/components/automountManager.js b/js/ui/components/automountManager.js
index 2d8f3f8fb..a6cd85792 100644
--- a/js/ui/components/automountManager.js
+++ b/js/ui/components/automountManager.js
@@ -210,6 +210,10 @@ var AutomountManager = new Lang.Class({
},
_onVolumeRemoved(monitor, volume) {
+ if (volume._allowAutorunExpireId && volume._allowAutorunExpireId > 0) {
+ Mainloop.source_remove(volume._allowAutorunExpireId);
+ delete volume._allowAutorunExpireId;
+ }
this._volumeQueue =
this._volumeQueue.filter(element => (element != volume));
},
@@ -234,8 +238,10 @@ var AutomountManager = new Lang.Class({
_allowAutorunExpire(volume) {
let id = Mainloop.timeout_add_seconds(AUTORUN_EXPIRE_TIMEOUT_SECS, () => {
volume.allowAutorun = false;
+ delete volume._allowAutorunExpireId;
return GLib.SOURCE_REMOVE;
});
+ volume._allowAutorunExpireId = id;
GLib.Source.set_name_by_id(id, '[gnome-shell] volume.allowAutorun');
}
});
--
2.19.0

View File

@ -1,25 +0,0 @@
From 5bca4a884e8f02441a89d7b44490339d869e5966 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 9 Jul 2018 13:31:26 +0200
Subject: [PATCH 4/4] calendar: chain up to parent on _onDestroy
---
js/ui/calendar.js | 2 ++
1 file changed, 2 insertions(+)
diff --git a/js/ui/calendar.js b/js/ui/calendar.js
index 990cac243..815c9f9c9 100644
--- a/js/ui/calendar.js
+++ b/js/ui/calendar.js
@@ -803,6 +803,8 @@ var NotificationMessage = new Lang.Class({
},
_onDestroy() {
+ this.parent();
+
if (this._updatedId)
this.notification.disconnect(this._updatedId);
this._updatedId = 0;
--
2.19.0

View File

@ -1,34 +0,0 @@
From 0c52baebe72a616a211b386c93afd0e67618764d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Tue, 11 Sep 2018 15:36:35 +0200
Subject: [PATCH] inputMethod: Fix setting surrounding text
The underlying ibus method expects an object of type IBusText rather
than a plain string.
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/228
---
js/misc/inputMethod.js | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/js/misc/inputMethod.js b/js/misc/inputMethod.js
index ec84f7277..7fb78178a 100644
--- a/js/misc/inputMethod.js
+++ b/js/misc/inputMethod.js
@@ -176,8 +176,11 @@ var InputMethod = new Lang.Class({
},
vfunc_set_surrounding(text, cursor, anchor) {
- if (this._context && text)
- this._context.set_surrounding_text(text, cursor, anchor);
+ if (!this._context || !text)
+ return;
+
+ let ibusText = IBus.Text.new_from_string(text);
+ this._context.set_surrounding_text(ibusText, cursor, anchor);
},
vfunc_update_content_hints(hints) {
--
2.18.0

View File

@ -1,97 +0,0 @@
From 2e863a0b7a7f0d6acaf6cac5db94162c472a0f7e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Sat, 15 Sep 2018 00:16:47 +0200
Subject: [PATCH 1/2] build: Remove obsolete soup dependency
It's unused since commit 96396163c ...
https://gitlab.gnome.org/GNOME/gnome-shell/issues/574
---
meson.build | 1 -
src/meson.build | 4 +---
src/shell-util.h | 1 -
3 files changed, 1 insertion(+), 5 deletions(-)
diff --git a/meson.build b/meson.build
index beedc84cc..18636c2f9 100644
--- a/meson.build
+++ b/meson.build
@@ -95,7 +95,6 @@ cogl_dep = dependency(cogl_pc, version: mutter_req)
cogl_pango_dep = dependency(cogl_pango_pc, version: mutter_req)
mutter_dep = dependency(libmutter_pc, version: mutter_req)
polkit_dep = dependency('polkit-agent-1', version: polkit_req)
-soup_dep = dependency('libsoup-2.4')
startup_dep = dependency('libstartup-notification-1.0', version: startup_req)
ibus_dep = dependency('ibus-1.0', version: ibus_req)
x11_dep = dependency('x11')
diff --git a/src/meson.build b/src/meson.build
index 178e05899..a67a02642 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -45,7 +45,6 @@ gnome_shell_deps = [
atk_bridge_dep,
gjs_dep,
gdk_x11_dep,
- soup_dep,
clutter_dep,
cogl_pango_dep,
startup_dep,
@@ -224,8 +223,7 @@ libshell_dep = declare_dependency(link_with: libshell)
libshell_gir_includes = [
'Clutter-@0@'.format(mutter_api_version),
'ClutterX11-@0@'.format(mutter_api_version),
- 'Meta-@0@'.format(mutter_api_version),
- 'Soup-2.4'
+ 'Meta-@0@'.format(mutter_api_version)
]
if have_networkmanager
diff --git a/src/shell-util.h b/src/shell-util.h
index 408b55f68..bbd38a8be 100644
--- a/src/shell-util.h
+++ b/src/shell-util.h
@@ -5,7 +5,6 @@
#include <gio/gio.h>
#include <clutter/clutter.h>
-#include <libsoup/soup.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <meta/meta-cursor-tracker.h>
#include <meta/meta-window-actor.h>
--
2.18.0
From a88f471e49d7bc6fe2188809ea74948f15bf04f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Fri, 14 Sep 2018 23:14:33 +0200
Subject: [PATCH 2/2] shell: Fix list of GIR includes
gjs now relies entirely on introspection data to determine parent
types and implemented interfaces, so in order to have all methods
and properties resolve correctly, we must include the corresponding
GIRs of all types used.
https://gitlab.gnome.org/GNOME/gnome-shell/issues/574
---
src/meson.build | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/meson.build b/src/meson.build
index a67a02642..2045bab82 100644
--- a/src/meson.build
+++ b/src/meson.build
@@ -223,7 +223,9 @@ libshell_dep = declare_dependency(link_with: libshell)
libshell_gir_includes = [
'Clutter-@0@'.format(mutter_api_version),
'ClutterX11-@0@'.format(mutter_api_version),
- 'Meta-@0@'.format(mutter_api_version)
+ 'Meta-@0@'.format(mutter_api_version),
+ 'Gcr-3',
+ 'PolkitAgent-1.0'
]
if have_networkmanager
--
2.18.0

View File

@ -1,6 +1,6 @@
Name: gnome-shell
Version: 3.30.0
Release: 9%{?dist}
Version: 3.30.1
Release: 1%{?dist}
Summary: Window management and application launching for GNOME
Group: User Interface/Desktops
@ -13,52 +13,10 @@ Source0: http://download.gnome.org/sources/gnome-shell/3.30/%{name}-%{ver
# Replace Epiphany with Firefox in the default favourite apps list
Patch1: gnome-shell-favourite-apps-firefox.patch
# Backport fix for https://gitlab.gnome.org/GNOME/gnome-shell/issues/140
Patch2: 0001-network-Don-t-assume-the-active-connection-has-been-.patch
# Fixes connecting to wifi from user menu
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/240
Patch3: 0001-Fix-connection-to-wifi-APs-from-user-menu-RH-1628263.patch
# Fixes crash on Overview app icon drag-and-drop, along with some other
# JS invalid access fixes
# https://gitlab.gnome.org/GNOME/gnome-shell/issues/577
# https://bugzilla.redhat.com/show_bug.cgi?id=1630134
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/209
Patch4: 0001-dnd-Nullify-_dragActor-after-we-ve-destroyed-it-and-.patch
Patch5: 0002-messageList-stop-syncing-if-closeButton-has-been-des.patch
Patch6: 0003-automountManager-remove-allowAutorun-expire-timeout-.patch
Patch7: 0004-calendar-chain-up-to-parent-on-_onDestroy.patch
# Fixes lack of text identifying the key on ssh key unlock prompt
# https://gitlab.gnome.org/GNOME/gnome-shell/issues/574
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/234
Patch8: 234.patch
# Fixes a workspace switch / window destroy crash with gjs 1.54.0
# https://gitlab.gnome.org/GNOME/gnome-shell/issues/539
Patch9: 0001-windowManager-listen-actively-to-windows-being-destr.patch
# Fixes an issue with window menus on multi-monitor systems
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/227
Patch10: 0001-windowMenu-Port-from-Meta.ScreenDirection-to-Meta.Di.patch
# Fixes hover and active state for some buttons (e.g. Power Off dialog)
# https://gitlab.gnome.org/GNOME/gnome-shell/issues/523
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/221
Patch11: 0001-theme-define-proper-hover-and-active-states.patch
# Add a null check and fix an IBus type error that affect input
# methods (and causes log spam when they're not enabled)
# https://gitlab.gnome.org/GNOME/gnome-shell/commit/0cf2d396b0d584f59402a6a0c42376639bd314ef
# https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/228
Patch12: 0001-inputMethod-Add-a-null-check-for-text-in-vfunc_set_s.patch
Patch13: 228.patch
# Implement https://wiki.gnome.org/Design/OS/BootOptions
# This should go upstream once systemd has a generic interface for this
Patch14: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch
Patch15: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
Patch2: 0001-endSessionDialog-Immediately-add-buttons-to-the-dial.patch
Patch3: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
%define libcroco_version 0.6.8
%define eds_version 3.17.2
@ -68,7 +26,7 @@ Patch15: 0002-endSessionDialog-Support-rebooting-into-the-bootload.patch
%define gjs_version 1.51.90
%define gtk3_version 3.15.0
%define json_glib_version 0.13.2
%define mutter_version 3.30.0
%define mutter_version 3.30.1
%define polkit_version 0.100
%define gsettings_desktop_schemas_version 3.21.3
%define ibus_version 1.5.2
@ -255,6 +213,9 @@ glib-compile-schemas --allow-any-name %{_datadir}/glib-2.0/schemas &> /dev/null
%{_mandir}/man1/%{name}.1.gz
%changelog
* Mon Oct 08 2018 Florian Müllner <fmuellner@redhat.com> - 3.30.1-1
- Update to 3.30.1
* Thu Sep 27 2018 Hans de Goede <hdegoede@redhat.com> - 3.30.0-9
- Add downstream patches implementing the "Boot Options" menu from:
https://wiki.gnome.org/Design/OS/BootOptions

View File

@ -1 +1 @@
SHA512 (gnome-shell-3.30.0.tar.xz) = b3a74a6c901b99573c4de83c8af038e4f06a45a56330add3bc18eff6711283f526f4315ac28a767393aae1cfa72c0848cdb37adae3097dd7400f45de3a940bb2
SHA512 (gnome-shell-3.30.1.tar.xz) = f0c492d364ae49f3f082b6ff98b38fa3f6438e1c7c485bb49c8c0b71ae892228d031c17bb87407ed376ae005dd4538e1883cd8af81b33e224261c23c4b5ae9cf