diff --git a/.gitignore b/.gitignore index 34ddc88..448301f 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/0001-screen-cast-stream-src-Adjust-to-pipewire-API-break.patch b/0001-screen-cast-stream-src-Adjust-to-pipewire-API-break.patch deleted file mode 100644 index 5cef405..0000000 --- a/0001-screen-cast-stream-src-Adjust-to-pipewire-API-break.patch +++ /dev/null @@ -1,31 +0,0 @@ -From f0c6c4eb1fa2b21e3806a31bbae0f210b029907e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Florian=20M=C3=BCllner?= -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 - diff --git a/mutter-3.26.0-do-not-leak-shortcut-inhibit-data.patch b/mutter-3.26.0-do-not-leak-shortcut-inhibit-data.patch deleted file mode 100644 index cae5a8b..0000000 --- a/mutter-3.26.0-do-not-leak-shortcut-inhibit-data.patch +++ /dev/null @@ -1,56 +0,0 @@ -From b8840456a593b1878d0f9c5cb22c271be7d09c94 Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan -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 - diff --git a/mutter-3.26.0-keep-inhibit-shortcut-dialog.patch b/mutter-3.26.0-keep-inhibit-shortcut-dialog.patch deleted file mode 100644 index 2a5ac56..0000000 --- a/mutter-3.26.0-keep-inhibit-shortcut-dialog.patch +++ /dev/null @@ -1,109 +0,0 @@ -From 40487bdd84da71bd3dc31810594b524e55b63049 Mon Sep 17 00:00:00 2001 -From: Olivier Fourdan -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 - diff --git a/mutter-3.26.0-use-gnew0-not-gnew.patch b/mutter-3.26.0-use-gnew0-not-gnew.patch deleted file mode 100644 index 36f009f..0000000 --- a/mutter-3.26.0-use-gnew0-not-gnew.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 21609ac6655ea7bee5cba9b37ec470375bcaf5d6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Jonas=20=C3=85dahl?= -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 \ No newline at end of file diff --git a/mutter.spec b/mutter.spec index 8f5ebff..9393e78 100644 --- a/mutter.spec +++ b/mutter.spec @@ -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 - 3.26.1-1 +- Update to 3.26.1 + * Wed Sep 21 2017 Florian Müllner - 3.26.0-5 - Adjust to pipewire API break diff --git a/sources b/sources index 3406a1f..bae75fd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mutter-3.26.0.tar.xz) = e88e5b120423512ae73a097b0ba3ba24ba6b9f3e53eed438335073b7c442294c9887771290bf63b05fb01f14640b9c4559b39b79d5c2a4fcbca993126e37f700 +SHA512 (mutter-3.26.1.tar.xz) = e638864fddcebcd922637a7a5a17f19815dc9b77bf72568374a81ad1e327c0fb644f546428848aacb39c99b04eba9f651f441b16e21ad880ab1593ee3ba912f4