Accepting request 538949 from home:luc14n0:branches:GNOME:Factory
Update to version 3.26.2 OBS-URL: https://build.opensuse.org/request/show/538949 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/mutter?expand=0&rev=267
This commit is contained in:
parent
e73a08b406
commit
2fbeb0bb9f
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:16faf617aae9be06dc5f9e104f4cd20dfdd4d6ec0bc10053752262e9f79a04c2
|
||||
size 3623648
|
3
mutter-3.26.2.tar.xz
Normal file
3
mutter-3.26.2.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:83309feb05a4635c47713665c0592af8ab6d7f17a36e4bd626d67609b6422fab
|
||||
size 3622904
|
@ -1,31 +0,0 @@
|
||||
From 8886e1bbdcb712d1e70873b2cccb7ab62e6a3eec Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Sat, 7 Oct 2017 00:33:39 -0400
|
||||
Subject: [PATCH] window: Handle updating from no to no monitor
|
||||
|
||||
When we received two hot plug events that both resulted in headless
|
||||
configuration, we tried to find a new window monitor given the old.
|
||||
That resulted in a null pointer dereference; avoid that by only trying
|
||||
to find the same monitor if there was an old one.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=788607
|
||||
---
|
||||
src/core/window.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/core/window.c b/src/core/window.c
|
||||
index dc60a667c..c2d9869d2 100644
|
||||
--- a/src/core/window.c
|
||||
+++ b/src/core/window.c
|
||||
@@ -3793,7 +3793,7 @@ meta_window_update_for_monitors_changed (MetaWindow *window)
|
||||
new = find_monitor_by_winsys_id (window, window->preferred_output_winsys_id);
|
||||
|
||||
/* Otherwise, try to find the old output on a new monitor */
|
||||
- if (!new)
|
||||
+ if (old && !new)
|
||||
new = find_monitor_by_winsys_id (window, old->winsys_id);
|
||||
|
||||
/* Fall back to primary if everything else failed */
|
||||
--
|
||||
2.14.2
|
||||
|
@ -1,119 +0,0 @@
|
||||
From c0dc66e8c0dfc6ab02506343dc8418891159657c Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
|
||||
Date: Wed, 18 Oct 2017 23:22:01 +0800
|
||||
Subject: [PATCH] monitor/normal: Prefer modes with same flags as preferred
|
||||
mode
|
||||
|
||||
When generating MetaMonitorMode's, prefer CRTC modes that has the same
|
||||
set of flags as the preferred mode. This not only is probably a better
|
||||
set of configurable modes, but it'll guarantee that the preferred mode
|
||||
is added.
|
||||
|
||||
This fixes a crash when the preferred mode was not the first mode with
|
||||
the same resolution, refresh rate and set of handled modes.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=789153
|
||||
---
|
||||
src/backends/meta-monitor.c | 41 ++++++++++++++++++++++++++++++++---------
|
||||
1 file changed, 32 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
|
||||
index 8ca6ea859..2d06a1e36 100644
|
||||
--- a/src/backends/meta-monitor.c
|
||||
+++ b/src/backends/meta-monitor.c
|
||||
@@ -394,16 +394,22 @@ generate_mode_id (MetaMonitorModeSpec *monitor_mode_spec)
|
||||
|
||||
static gboolean
|
||||
meta_monitor_add_mode (MetaMonitor *monitor,
|
||||
- MetaMonitorMode *monitor_mode)
|
||||
+ MetaMonitorMode *monitor_mode,
|
||||
+ gboolean replace)
|
||||
{
|
||||
MetaMonitorPrivate *priv = meta_monitor_get_instance_private (monitor);
|
||||
+ MetaMonitorMode *existing_mode;
|
||||
|
||||
- if (g_hash_table_lookup (priv->mode_ids,
|
||||
- meta_monitor_mode_get_id (monitor_mode)))
|
||||
+ existing_mode = g_hash_table_lookup (priv->mode_ids,
|
||||
+ meta_monitor_mode_get_id (monitor_mode));
|
||||
+ if (existing_mode && !replace)
|
||||
return FALSE;
|
||||
|
||||
+ if (existing_mode)
|
||||
+ priv->modes = g_list_remove (priv->modes, existing_mode);
|
||||
+
|
||||
priv->modes = g_list_append (priv->modes, monitor_mode);
|
||||
- g_hash_table_insert (priv->mode_ids, monitor_mode->id, monitor_mode);
|
||||
+ g_hash_table_replace (priv->mode_ids, monitor_mode->id, monitor_mode);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -415,13 +421,17 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
|
||||
MetaMonitorPrivate *monitor_priv =
|
||||
meta_monitor_get_instance_private (monitor);
|
||||
MetaOutput *output;
|
||||
+ MetaCrtcModeFlag preferred_mode_flags;
|
||||
unsigned int i;
|
||||
|
||||
output = meta_monitor_get_main_output (monitor);
|
||||
+ preferred_mode_flags = output->preferred_mode->flags;
|
||||
+
|
||||
for (i = 0; i < output->n_modes; i++)
|
||||
{
|
||||
MetaCrtcMode *crtc_mode = output->modes[i];
|
||||
MetaMonitorMode *mode;
|
||||
+ gboolean replace;
|
||||
|
||||
mode = g_new0 (MetaMonitorMode, 1);
|
||||
mode->spec = (MetaMonitorModeSpec) {
|
||||
@@ -437,13 +447,26 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
|
||||
.crtc_mode = crtc_mode
|
||||
};
|
||||
|
||||
+ /*
|
||||
+ * We don't distinguish between all available mode flags, just the ones
|
||||
+ * that are configurable. We still need to pick some mode though, so
|
||||
+ * prefer ones that has the same set of flags as the preferred mode;
|
||||
+ * otherwise take the first one in the list. This guarantees that the
|
||||
+ * preferred mode is always added.
|
||||
+ */
|
||||
+ replace = crtc_mode->flags == preferred_mode_flags;
|
||||
+
|
||||
+ if (!meta_monitor_add_mode (monitor, mode, replace))
|
||||
+ {
|
||||
+ g_assert (crtc_mode != output->preferred_mode);
|
||||
+ meta_monitor_mode_free (mode);
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
if (crtc_mode == output->preferred_mode)
|
||||
monitor_priv->preferred_mode = mode;
|
||||
if (output->crtc && crtc_mode == output->crtc->current_mode)
|
||||
monitor_priv->current_mode = mode;
|
||||
-
|
||||
- if (!meta_monitor_add_mode (monitor, mode))
|
||||
- meta_monitor_mode_free (mode);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -825,7 +848,7 @@ generate_tiled_monitor_modes (MetaMonitorTiled *monitor_tiled)
|
||||
|
||||
tiled_modes = g_list_remove_link (tiled_modes, l);
|
||||
|
||||
- if (!meta_monitor_add_mode (monitor, mode))
|
||||
+ if (!meta_monitor_add_mode (monitor, mode, FALSE))
|
||||
{
|
||||
meta_monitor_mode_free (mode);
|
||||
continue;
|
||||
@@ -967,7 +990,7 @@ generate_untiled_monitor_modes (MetaMonitorTiled *monitor_tiled)
|
||||
if (!mode)
|
||||
continue;
|
||||
|
||||
- if (!meta_monitor_add_mode (monitor, mode))
|
||||
+ if (!meta_monitor_add_mode (monitor, mode, FALSE))
|
||||
{
|
||||
meta_monitor_mode_free (mode);
|
||||
continue;
|
||||
--
|
||||
2.14.2
|
||||
|
@ -1,45 +0,0 @@
|
||||
From edfd15b32daca9fef707a25bf312441349506b05 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniels@collabora.com>
|
||||
Date: Mon, 2 Oct 2017 16:46:17 +0100
|
||||
Subject: wayland-dma-buf: Don't send modifiers to old clients
|
||||
|
||||
The modifier event was only added in v3 of the client; sending it to
|
||||
older clients (e.g. GStreamer waylandsink) causes them to disconnect
|
||||
immediately.
|
||||
|
||||
Send the older 'format' event to all clients, and only send the newer
|
||||
'modifier' event to resource versions 3 or above.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=788558
|
||||
---
|
||||
src/wayland/meta-wayland-dma-buf.c | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/wayland/meta-wayland-dma-buf.c b/src/wayland/meta-wayland-dma-buf.c
|
||||
index e5d2f7c..76b8aa2 100644
|
||||
--- a/src/wayland/meta-wayland-dma-buf.c
|
||||
+++ b/src/wayland/meta-wayland-dma-buf.c
|
||||
@@ -473,12 +473,19 @@ send_modifiers (struct wl_resource *resource,
|
||||
gboolean ret;
|
||||
int i;
|
||||
|
||||
+ zwp_linux_dmabuf_v1_send_format (resource, format);
|
||||
+
|
||||
+ /* The modifier event was only added in v3; v1 and v2 only have the format
|
||||
+ * event. */
|
||||
+ if (wl_resource_get_version (resource) < ZWP_LINUX_DMABUF_V1_MODIFIER_SINCE_VERSION)
|
||||
+ return;
|
||||
+
|
||||
/* First query the number of available modifiers, then allocate an array,
|
||||
* then fill the array. */
|
||||
ret = meta_egl_query_dma_buf_modifiers (egl, egl_display, format, 0, NULL,
|
||||
NULL, &num_modifiers, NULL);
|
||||
if (!ret || num_modifiers == 0)
|
||||
- return;
|
||||
+ return;
|
||||
|
||||
modifiers = g_new0 (uint64_t, num_modifiers);
|
||||
ret = meta_egl_query_dma_buf_modifiers (egl, egl_display, format,
|
||||
--
|
||||
cgit v0.12
|
||||
|
@ -1,34 +0,0 @@
|
||||
From 41f7a5fdf3bd95bd13e43e2151d29157d1dc5168 Mon Sep 17 00:00:00 2001
|
||||
From: polygamma <jonny.westphalen@googlemail.com>
|
||||
Date: Mon, 9 Oct 2017 16:14:13 +0200
|
||||
Subject: x11: Protect XChangeProperty call with error traps
|
||||
|
||||
They may happen around the time a window is destroyed, thus could result
|
||||
on BadWindow X errors.
|
||||
|
||||
https://bugzilla.gnome.org/show_bug.cgi?id=788666
|
||||
---
|
||||
src/x11/window-x11.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/x11/window-x11.c b/src/x11/window-x11.c
|
||||
index 36a5e70..4885f5f 100644
|
||||
--- a/src/x11/window-x11.c
|
||||
+++ b/src/x11/window-x11.c
|
||||
@@ -920,11 +920,13 @@ update_gtk_edge_constraints (MetaWindow *window)
|
||||
|
||||
meta_verbose ("Setting _GTK_EDGE_CONSTRAINTS to %lu\n", data[0]);
|
||||
|
||||
+ meta_error_trap_push (window->display);
|
||||
XChangeProperty (window->display->xdisplay,
|
||||
window->xwindow,
|
||||
window->display->atom__GTK_EDGE_CONSTRAINTS,
|
||||
XA_CARDINAL, 32, PropModeReplace,
|
||||
(guchar*) data, 1);
|
||||
+ meta_error_trap_pop (window->display);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
--
|
||||
cgit v0.12
|
||||
|
@ -1,3 +1,33 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Nov 4 02:03:57 UTC 2017 - luc14n0@linuxmail.org
|
||||
|
||||
- Update to version 3.26.2:
|
||||
+ Work with clients that require older linux_dmabuf protocol
|
||||
(bgo#788558).
|
||||
+ Prevent crash when closing maximized windows (bgo#788666).
|
||||
+ Use the correct monitor for HiDPI scaling of shell chrome
|
||||
(bgo#788820).
|
||||
+ Enable XWayland core dumps (bgo#789086).
|
||||
+ Fixes:
|
||||
- Unredirection of fullscreen windows (bgo#788493).
|
||||
- List of supported monitor scales on X11 (bgo#788901).
|
||||
- Handling of trackball settings on wayland (bgo#787804).
|
||||
- Miscellaneous:
|
||||
. Multi-monitor regressions and crashes (bgo#788607,
|
||||
bgo#788860, bgo#789153, bgo#786929, bgo#789501).
|
||||
. Bug fixes: bgo#788572, bgo#788569, bgo#784314, bgo#789227,
|
||||
bgo#789223, bgo#782344, bgo#789552, bgo#789553, bgo#789300.
|
||||
+ Updated translations.
|
||||
- Drop fixed upstream patches:
|
||||
mutter-wayland-dma-buf-modifiers-fix.patch,
|
||||
mutter-x11-Protect-XChangeProperty-call.patch,
|
||||
mutter-handle-no-to-no-monitor.patch and
|
||||
mutter-preferred-mode.patch.
|
||||
- Drop %glib2_gsettings_schema_requires macro: the functionality is
|
||||
covered by file triggers now.
|
||||
- Point fdupes to the /usr directory instead of the build root,
|
||||
which is a practice that must be avoided.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Oct 19 21:47:53 UTC 2017 - mgorse@suse.com
|
||||
|
||||
@ -23,12 +53,15 @@ Wed Oct 4 19:55:42 UTC 2017 - zaitor@opensuse.org
|
||||
+ Fix crash during monitor configuration migration (bgo#787668).
|
||||
+ Fix multihead regressions in X11 session (bgo#787477).
|
||||
+ Fix screen rotation regressions (bgo#787836).
|
||||
+ Fix keybindings not being resolved with non-latin layouts (bgo#787016).
|
||||
+ Fix keybindings not being resolved with non-latin layouts
|
||||
(bgo#787016).
|
||||
+ Support snap packages for sandboxed app IDs (bgo#788217).
|
||||
+ Fix crash when reconnecting tablet device (bgo#787649).
|
||||
+ Support running headless (bgo#730551, bgo#787637).
|
||||
+ Support _NET_RESTACK_WINDOW and ConfigureRequest siblings (bgo#786365).
|
||||
+ Fix monitor layout not being remembered across sessions (bgo#787629).
|
||||
+ Support _NET_RESTACK_WINDOW and ConfigureRequest siblings
|
||||
(bgo#786365).
|
||||
+ Fix monitor layout not being remembered across sessions
|
||||
(bgo#787629).
|
||||
+ Make sure to export _NET_NUMBER_OF_DESKTOPS (bgo#760651).
|
||||
+ Allow resizing of tiled windows (bgo#645153).
|
||||
+ Export tiling information to clients (bgo#751857).
|
||||
|
25
mutter.spec
25
mutter.spec
@ -17,27 +17,19 @@
|
||||
|
||||
|
||||
Name: mutter
|
||||
Version: 3.26.1
|
||||
Version: 3.26.2
|
||||
Release: 0
|
||||
Summary: Window and compositing manager based on Clutter
|
||||
License: GPL-2.0+
|
||||
Group: System/GUI/GNOME
|
||||
Url: http://www.gnome.org
|
||||
Source: http://download.gnome.org/sources/mutter/3.26/%{name}-%{version}.tar.xz
|
||||
Url: https://www.gnome.org
|
||||
Source: https://download.gnome.org/sources/mutter/3.26/%{name}-%{version}.tar.xz
|
||||
# PATCH-FIX-UPSTREAM mutter-fix-startup.patch bgo#768531 zaitor@opensuse.org -- Fix slow startup notification on wayland
|
||||
Patch0: mutter-fix-startup.patch
|
||||
# PATCH-FEATURE-UPSTREAM mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch FATE#323412 bgo#781704 bsc#1024748 vliaskovitis@suse.com -- iconcache: Support RGB16_565 format for 16-bit sessions
|
||||
Patch1: mutter-iconcache-Support-RGB16_565-format-for-16-bit-color-.patch
|
||||
# PATCH-FIX-UPSTREAM mutter-wayland-dma-buf-modifiers-fix.patch bgo#788558 zaitor@opensuse.org -- Don't send modifiers to old clients
|
||||
Patch2: mutter-wayland-dma-buf-modifiers-fix.patch
|
||||
# PATCH-FIX-UPSTREAM mutter-x11-Protect-XChangeProperty-call.patch bgo#788666 zaitor@opensuse.org -- Protect XChangeProperty call with error traps
|
||||
Patch3: mutter-x11-Protect-XChangeProperty-call.patch
|
||||
# PATCH-FIX-UPSTREAM mutter-handle-no-to-no-monitor.patch bgo#788607 mgorse@suse.com -- handle updating from no to no monitor.
|
||||
Patch4: mutter-handle-no-to-no-monitor.patch
|
||||
# PATCH-FIX-UPSTREAM mutter-preferred-mode.patch bgo#789153 mgorse@suse.com -- monitor/normal: prefer modes with same flags as preferred mode.
|
||||
Patch5: mutter-preferred-mode.patch
|
||||
|
||||
# SLE only patches start at 1000
|
||||
# SLE-only patches start at 1000
|
||||
# PATCH-FEATURE-SLE mutter-SLE-bell.patch FATE#316042 bnc#889218 idonmez@suse.com -- make audible bell work out of the box.
|
||||
Patch1000: mutter-SLE-bell.patch
|
||||
# PATCH-FIX-SLE mutter-SLE-relax-some-constraints-on-CSD-windows.patch bnc#883491 cxiong@suse.com -- Relax some constraints on window positioning for CSD windows s.t. they can be placed at the very top of the monitor.
|
||||
@ -122,7 +114,6 @@ This package contains a library for shared features.
|
||||
Summary: Data files for mutter, a window and compositing manager based on Clutter
|
||||
Group: System/GUI/GNOME
|
||||
Requires: %{name} = %{version}
|
||||
%glib2_gsettings_schema_requires
|
||||
|
||||
%description data
|
||||
Mutter is a window and compositing manager based on Clutter, forked
|
||||
@ -146,12 +137,8 @@ applications that want to make use of the mutter library.
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
|
||||
# SLE only patches and translations.
|
||||
# SLE-only patches and translations.
|
||||
%if !0%{?is_opensuse}
|
||||
translation-update-upstream
|
||||
%patch1000 -p1
|
||||
@ -174,7 +161,7 @@ make %{?_smp_mflags}
|
||||
find %{buildroot}%{_libdir} -type f -name '*.la' -delete -print
|
||||
%suse_update_desktop_file %{name}
|
||||
%find_lang %{name} %{?no_lang_C}
|
||||
%fdupes %{buildroot}
|
||||
%fdupes %{buildroot}%{_prefix}
|
||||
|
||||
%post -n libmutter-1-0 -p /sbin/ldconfig
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user