Update to 3.26.1

This commit is contained in:
Florian Müllner 2017-10-04 17:08:11 +02:00
parent 79f02b2c4f
commit 7018d9fe73
7 changed files with 7 additions and 236 deletions

1
.gitignore vendored
View File

@ -131,3 +131,4 @@ mutter-2.31.5.tar.bz2
/mutter-3.25.91.tar.xz
/mutter-3.25.92.tar.xz
/mutter-3.26.0.tar.xz
/mutter-3.26.1.tar.xz

View File

@ -1,31 +0,0 @@
From f0c6c4eb1fa2b21e3806a31bbae0f210b029907e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 20 Sep 2017 19:54:45 +0200
Subject: [PATCH] screen-cast-stream-src: Adjust to pipewire API break
https://bugzilla.gnome.org/show_bug.cgi?id=787953
---
src/backends/meta-screen-cast-stream-src.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/backends/meta-screen-cast-stream-src.c b/src/backends/meta-screen-cast-stream-src.c
index 7f8217712..e6d99d592 100644
--- a/src/backends/meta-screen-cast-stream-src.c
+++ b/src/backends/meta-screen-cast-stream-src.c
@@ -535,7 +535,13 @@ meta_screen_cast_stream_src_initable_init (GInitable *initable,
return FALSE;
}
+#if PIPEWIRE_VERSION_MICRO == 4
priv->pipewire_remote = pw_remote_new (priv->pipewire_core, NULL);
+#elif PIPEWIRE_VERSION_MICRO >= 5
+ priv->pipewire_remote = pw_remote_new (priv->pipewire_core, NULL, 0);
+#else
+ priv->pipewire_remote = NULL;
+#endif
if (!priv->pipewire_remote)
{
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
--
2.13.5

View File

@ -1,56 +0,0 @@
From b8840456a593b1878d0f9c5cb22c271be7d09c94 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Tue, 12 Sep 2017 10:27:32 +0200
Subject: [PATCH] wayland: do not leak shortcut inhibit data
We would free the shortcut inhibit data only when the client destroys
its request, which is not the case when the clients itself is
destroyed, leading to a leak of the shortcut inhibit data.
Free the data on resource destruction instead, and simply destroy the
resource on destroy request.
https://bugzilla.gnome.org/show_bug.cgi?id=787568
---
src/wayland/meta-wayland-inhibit-shortcuts.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/wayland/meta-wayland-inhibit-shortcuts.c b/src/wayland/meta-wayland-inhibit-shortcuts.c
index a7ba3c211..8e5ed2413 100644
--- a/src/wayland/meta-wayland-inhibit-shortcuts.c
+++ b/src/wayland/meta-wayland-inhibit-shortcuts.c
@@ -41,8 +41,7 @@ struct _MetaWaylandKeyboardShotscutsInhibit
};
static void
-zwp_keyboard_shortcuts_inhibit_destroy (struct wl_client *client,
- struct wl_resource *resource)
+zwp_keyboard_shortcuts_inhibit_destructor (struct wl_resource *resource)
{
MetaWaylandKeyboardShotscutsInhibit *shortcut_inhibit;
@@ -64,6 +63,12 @@ zwp_keyboard_shortcuts_inhibit_destroy (struct wl_client *client,
shortcut_inhibit->seat);
}
g_free (shortcut_inhibit);
+}
+
+static void
+zwp_keyboard_shortcuts_inhibit_destroy (struct wl_client *client,
+ struct wl_resource *resource)
+{
wl_resource_destroy (resource);
}
@@ -148,7 +153,7 @@ zwp_keyboard_shortcuts_inhibit_manager_inhibit_shortcuts (struct wl_client *cl
wl_resource_set_implementation (keyboard_shortcuts_inhibit_resource,
&meta_keyboard_shortcuts_inhibit_interface,
shortcut_inhibit,
- NULL);
+ zwp_keyboard_shortcuts_inhibit_destructor);
}
static const struct zwp_keyboard_shortcuts_inhibit_manager_v1_interface
--
2.13.5

View File

@ -1,109 +0,0 @@
From 40487bdd84da71bd3dc31810594b524e55b63049 Mon Sep 17 00:00:00 2001
From: Olivier Fourdan <ofourdan@redhat.com>
Date: Tue, 12 Sep 2017 09:39:24 +0200
Subject: [PATCH] wayland: Keep the inhibit shortcut dialog
On Wayland, the grab()/ungrab() in gtk+/gdk are wired to the shortcut
inhibitor mechanism, which in turn shows the dialog, which can take
focus away from the client window when the dialog is shown.
If the client issues an ungrab() when the keyboard focus is lost, we
would hide the dialog, causing the keyboard focus to be returned to the
client surface, which in turn would issue a new grab(), so forth and so
on, causing a continuous show/hide of the shortcut inhibitor dialog.
To avoid this issue, keep the dialog around even if the shortcut inhibit
is canceled by the client, so that the user is forced to make a choice
that we can reuse on the next request without showing the dialog again.
Instead of hiding the dialog when the shortcut inhibitor is destroyed by
the client, we simply mark the request as canceled and do not apply the
user's choice.
https://bugzilla.gnome.org/show_bug.cgi?id=787568
---
src/wayland/meta-wayland-inhibit-shortcuts-dialog.c | 15 +++++++++++----
src/wayland/meta-wayland-inhibit-shortcuts-dialog.h | 2 +-
src/wayland/meta-wayland-inhibit-shortcuts.c | 2 +-
3 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c b/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c
index 5f883f765..a432a4103 100644
--- a/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c
+++ b/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c
@@ -32,6 +32,7 @@ typedef struct _InhibitShortcutsData
MetaInhibitShortcutsDialog *dialog;
gulong response_handler_id;
gboolean has_last_response;
+ gboolean request_canceled;
MetaInhibitShortcutsDialogResponse last_response;
} InhibitShortcutsData;
@@ -93,7 +94,10 @@ inhibit_shortcuts_dialog_response_cb (MetaInhibitShortcutsDialog *dialog,
{
data->last_response = response;
data->has_last_response = TRUE;
- inhibit_shortcuts_dialog_response_apply (data);
+
+ /* If the request was canceled, we don't need to apply the choice made */
+ if (!data->request_canceled)
+ inhibit_shortcuts_dialog_response_apply (data);
meta_inhibit_shortcuts_dialog_hide (data->dialog);
surface_inhibit_shortcuts_data_destroy_dialog (data);
@@ -154,11 +158,14 @@ meta_wayland_surface_show_inhibit_shortcuts_dialog (MetaWaylandSurface *surface,
}
data = meta_wayland_surface_ensure_inhibit_shortcuts_dialog (surface, seat);
+ /* This is a new request */
+ data->request_canceled = FALSE;
+
meta_inhibit_shortcuts_dialog_show (data->dialog);
}
void
-meta_wayland_surface_hide_inhibit_shortcuts_dialog (MetaWaylandSurface *surface)
+meta_wayland_surface_cancel_inhibit_shortcuts_dialog (MetaWaylandSurface *surface)
{
InhibitShortcutsData *data;
@@ -168,8 +175,8 @@ meta_wayland_surface_hide_inhibit_shortcuts_dialog (MetaWaylandSurface *surface)
data = surface_inhibit_shortcuts_data_get (surface);
g_return_if_fail (data);
- if (data->dialog)
- meta_inhibit_shortcuts_dialog_hide (data->dialog);
+ /* Keep the dialog on screen, but mark the request as canceled */
+ data->request_canceled = TRUE;
}
void
diff --git a/src/wayland/meta-wayland-inhibit-shortcuts-dialog.h b/src/wayland/meta-wayland-inhibit-shortcuts-dialog.h
index bd3fc42b0..a7d60cfc3 100644
--- a/src/wayland/meta-wayland-inhibit-shortcuts-dialog.h
+++ b/src/wayland/meta-wayland-inhibit-shortcuts-dialog.h
@@ -24,7 +24,7 @@
void meta_wayland_surface_show_inhibit_shortcuts_dialog (MetaWaylandSurface *surface,
MetaWaylandSeat *seat);
-void meta_wayland_surface_hide_inhibit_shortcuts_dialog (MetaWaylandSurface *surface);
+void meta_wayland_surface_cancel_inhibit_shortcuts_dialog (MetaWaylandSurface *surface);
void meta_wayland_surface_inhibit_shortcuts_dialog_init (void);
diff --git a/src/wayland/meta-wayland-inhibit-shortcuts.c b/src/wayland/meta-wayland-inhibit-shortcuts.c
index cd078917d..a7ba3c211 100644
--- a/src/wayland/meta-wayland-inhibit-shortcuts.c
+++ b/src/wayland/meta-wayland-inhibit-shortcuts.c
@@ -49,7 +49,7 @@ zwp_keyboard_shortcuts_inhibit_destroy (struct wl_client *client,
shortcut_inhibit = wl_resource_get_user_data (resource);
if (shortcut_inhibit->surface)
{
- meta_wayland_surface_hide_inhibit_shortcuts_dialog (shortcut_inhibit->surface);
+ meta_wayland_surface_cancel_inhibit_shortcuts_dialog (shortcut_inhibit->surface);
g_signal_handler_disconnect (shortcut_inhibit->surface,
shortcut_inhibit->surface_destroyed_handler);
--
2.13.5

View File

@ -1,28 +0,0 @@
From 21609ac6655ea7bee5cba9b37ec470375bcaf5d6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
Date: Tue, 12 Sep 2017 12:20:31 +0800
Subject: [PATCH] wayland/inhibit-shortcuts-dialog: Use g_new0 instead of g_new
The code assumed the newly allocated blocked was initialized to 0, but
it wasn't since g_new was used. Fix that by using g_new0.
https://bugzilla.gnome.org/show_bug.cgi?id=787570
---
src/wayland/meta-wayland-inhibit-shortcuts-dialog.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c b/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c
index da897b9b3..5f883f765 100644
--- a/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c
+++ b/src/wayland/meta-wayland-inhibit-shortcuts-dialog.c
@@ -112,7 +112,7 @@ meta_wayland_surface_ensure_inhibit_shortcuts_dialog (MetaWaylandSurface *surfac
if (data)
return data;
- data = g_new (InhibitShortcutsData, 1);
+ data = g_new0 (InhibitShortcutsData, 1);
surface_inhibit_shortcuts_data_set (surface, data);
g_signal_connect (surface, "destroy",
G_CALLBACK (on_surface_destroyed),
--
2.13.5

View File

@ -6,8 +6,8 @@
%global pipewire_version 0.1.4
Name: mutter
Version: 3.26.0
Release: 6%{?dist}
Version: 3.26.1
Release: 1%{?dist}
Summary: Window and compositing manager based on Clutter
License: GPLv2+
@ -18,15 +18,6 @@ Source0: http://download.gnome.org/sources/%{name}/3.26/%{name}-%{version}
Patch0: startup-notification.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=786677
# https://bugzilla.gnome.org/show_bug.cgi?id=787568
Patch1: mutter-3.26.0-keep-inhibit-shortcut-dialog.patch
Patch2: mutter-3.26.0-do-not-leak-shortcut-inhibit-data.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=787570
Patch3: mutter-3.26.0-use-gnew0-not-gnew.patch
Patch4: 0001-screen-cast-stream-src-Adjust-to-pipewire-API-break.patch
BuildRequires: chrpath
BuildRequires: pango-devel
BuildRequires: startup-notification-devel
@ -197,6 +188,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || :
%{_datadir}/mutter/tests
%changelog
* Wed Oct 04 2017 Florian Müllner <fmuellner@redhat.com> - 3.26.1-1
- Update to 3.26.1
* Wed Sep 21 2017 Florian Müllner <fmuellner@redhat.com> - 3.26.0-5
- Adjust to pipewire API break

View File

@ -1 +1 @@
SHA512 (mutter-3.26.0.tar.xz) = e88e5b120423512ae73a097b0ba3ba24ba6b9f3e53eed438335073b7c442294c9887771290bf63b05fb01f14640b9c4559b39b79d5c2a4fcbca993126e37f700
SHA512 (mutter-3.26.1.tar.xz) = e638864fddcebcd922637a7a5a17f19815dc9b77bf72568374a81ad1e327c0fb644f546428848aacb39c99b04eba9f651f441b16e21ad880ab1593ee3ba912f4