Update to 3.30.1
This commit is contained in:
parent
22f01e4be7
commit
ec1d97a717
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
34
228.patch
34
228.patch
@ -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
|
||||
|
97
234.patch
97
234.patch
@ -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
|
||||
|
@ -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
|
||||
|
2
sources
2
sources
@ -1 +1 @@
|
||||
SHA512 (gnome-shell-3.30.0.tar.xz) = b3a74a6c901b99573c4de83c8af038e4f06a45a56330add3bc18eff6711283f526f4315ac28a767393aae1cfa72c0848cdb37adae3097dd7400f45de3a940bb2
|
||||
SHA512 (gnome-shell-3.30.1.tar.xz) = f0c492d364ae49f3f082b6ff98b38fa3f6438e1c7c485bb49c8c0b71ae892228d031c17bb87407ed376ae005dd4538e1883cd8af81b33e224261c23c4b5ae9cf
|
||||
|
Loading…
Reference in New Issue
Block a user