From 418c5151b6096bd1b5467f34227f008af2ee4aec Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Sep 25 2018 17:33:27 +0000 Subject: import mutter-3.26.2-17.el7_5 --- diff --git a/SOURCES/0001-monitor-manager-Consider-external-layout-before-defa.patch b/SOURCES/0001-monitor-manager-Consider-external-layout-before-defa.patch index 3a67aa8..0fffa56 100644 --- a/SOURCES/0001-monitor-manager-Consider-external-layout-before-defa.patch +++ b/SOURCES/0001-monitor-manager-Consider-external-layout-before-defa.patch @@ -1,4 +1,4 @@ -From 679644180338527648d7856640c2021b4f4daf30 Mon Sep 17 00:00:00 2001 +From 648f1ce9350fcab0ebaecccb115b5021c632e7b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Thu, 28 Jan 2016 15:26:33 +0100 Subject: [PATCH] monitor-manager: Consider external layout before default @@ -11,16 +11,16 @@ which is not desirable. Instead, base the initial configuration on the existing layout if it passes some sanity checks before falling back to the default linear config. --- - src/backends/meta-monitor-config-manager.c | 71 ++++++++++++++++++++++++++++++ + src/backends/meta-monitor-config-manager.c | 75 ++++++++++++++++++++++ src/backends/meta-monitor-config-manager.h | 1 + - src/backends/meta-monitor-manager.c | 19 ++++++++ - 3 files changed, 91 insertions(+) + src/backends/meta-monitor-manager.c | 19 ++++++ + 3 files changed, 95 insertions(+) diff --git a/src/backends/meta-monitor-config-manager.c b/src/backends/meta-monitor-config-manager.c -index cdc9fb775..2fe620767 100644 +index 197892bf2..ae988f64a 100644 --- a/src/backends/meta-monitor-config-manager.c +++ b/src/backends/meta-monitor-config-manager.c -@@ -558,6 +558,77 @@ create_preferred_logical_monitor_config (MetaMonitorManager *monitor_ma +@@ -559,6 +559,81 @@ create_preferred_logical_monitor_config (MetaMonitorManager *monitor_ma return logical_monitor_config; } @@ -92,14 +92,18 @@ index cdc9fb775..2fe620767 100644 + logical_monitor_configs = g_list_append (logical_monitor_configs, + logical_monitor_config); + } -+ return NULL; ++ ++ return meta_monitors_config_new (monitor_manager, ++ logical_monitor_configs, ++ layout_mode, ++ META_MONITORS_CONFIG_FLAG_NONE); +} + MetaMonitorsConfig * meta_monitor_config_manager_create_linear (MetaMonitorConfigManager *config_manager) { diff --git a/src/backends/meta-monitor-config-manager.h b/src/backends/meta-monitor-config-manager.h -index b99cdaba2..516909dd7 100644 +index 269d8e1b7..c36df38e6 100644 --- a/src/backends/meta-monitor-config-manager.h +++ b/src/backends/meta-monitor-config-manager.h @@ -87,6 +87,7 @@ gboolean meta_monitor_config_manager_assign (MetaMonitorManager *manager, @@ -111,10 +115,10 @@ index b99cdaba2..516909dd7 100644 MetaMonitorsConfig * meta_monitor_config_manager_create_fallback (MetaMonitorConfigManager *config_manager); diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c -index f2ad3f3d0..8b548fd68 100644 +index 0b5e54c48..263e93941 100644 --- a/src/backends/meta-monitor-manager.c +++ b/src/backends/meta-monitor-manager.c -@@ -553,6 +553,25 @@ meta_monitor_manager_ensure_configured (MetaMonitorManager *manager) +@@ -576,6 +576,25 @@ meta_monitor_manager_ensure_configured (MetaMonitorManager *manager) g_clear_object (&config); } @@ -141,5 +145,5 @@ index f2ad3f3d0..8b548fd68 100644 if (config) { -- -2.14.2 +2.17.1 diff --git a/SOURCES/fix-transient-close-crash.patch b/SOURCES/fix-transient-close-crash.patch new file mode 100644 index 0000000..0d2da5e --- /dev/null +++ b/SOURCES/fix-transient-close-crash.patch @@ -0,0 +1,71 @@ +From 2e3ae76207d9367fa15a3e759e797a0bea5eea71 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 25 May 2018 20:18:23 +0200 +Subject: [PATCH 1/2] window: Don't refuse to move focus to the grab window + +We refuse to move focus while a grab operation is in place. While this +generally makes sense, there's no reason why the window that owns the +grab shouldn't be given the regular input focus as well - we pretty +much assume that the grab window is also the focus window anyway. + +In fact there's a strong reason for allowing the focus change here: +If the grab window isn't the focus window, it probably has a modal +transient that is focused instead, and a likely reason for the focus +request is that the transient is being unmanaged and we must move +the focus elsewhere. + +https://gitlab.gnome.org/GNOME/mutter/issues/15 +--- + src/core/window.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/core/window.c b/src/core/window.c +index c2d9869d2..80144cc63 100644 +--- a/src/core/window.c ++++ b/src/core/window.c +@@ -4601,6 +4601,7 @@ meta_window_focus (MetaWindow *window, + window->desc, window->input, window->take_focus); + + if (window->display->grab_window && ++ window->display->grab_window != window && + window->display->grab_window->all_keys_grabbed && + !window->display->grab_window->unmanaging) + { +-- +2.17.1 + + +From ba49c5298b1ae3a1e1ba52ec16d5a739115e6967 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Florian=20M=C3=BCllner?= +Date: Fri, 25 May 2018 21:24:17 +0200 +Subject: [PATCH 2/2] window: Explicitly exclude unmanaging window from focus + again + +Since commit b3b9d9e16 we no longer have to pass the unmanaging window +to make sure we don't try to focus it again, however the parameter also +influences the focus policy by giving ancestors preference over the normal +stack order. + +https://gitlab.gnome.org/GNOME/mutter/issues/15 +--- + src/core/window.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/core/window.c b/src/core/window.c +index 80144cc63..0b71744d5 100644 +--- a/src/core/window.c ++++ b/src/core/window.c +@@ -1466,7 +1466,9 @@ meta_window_unmanage (MetaWindow *window, + meta_topic (META_DEBUG_FOCUS, + "Focusing default window since we're unmanaging %s\n", + window->desc); +- meta_workspace_focus_default_window (window->screen->active_workspace, NULL, timestamp); ++ meta_workspace_focus_default_window (window->screen->active_workspace, ++ window, ++ timestamp); + } + else + { +-- +2.17.1 + diff --git a/SPECS/mutter.spec b/SPECS/mutter.spec index fffe527..52c9c6c 100644 --- a/SPECS/mutter.spec +++ b/SPECS/mutter.spec @@ -11,7 +11,7 @@ Name: mutter Version: 3.26.2 -Release: 15%{?dist} +Release: 17%{?dist} Summary: Window and compositing manager based on Clutter License: GPLv2+ @@ -46,6 +46,7 @@ Patch20: 0008-Add-support-for-quad-buffer-stereo.patch Patch21: 0001-build-Lower-automake-requirement.patch Patch23: 0001-backends-x11-Fix-time-comparison-bug-causing-hang.patch +Patch24: fix-transient-close-crash.patch # el7 patches Patch100: 0001-Revert-build-Require-libgudev-232.patch @@ -217,6 +218,14 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &> /dev/null || : %{_libdir}/pkgconfig/* %changelog +* Tue Aug 28 2018 Florian Müllner - 3.26.2-17 +- Fix crash when transient dialog closes during drag operation +- Resolves: #1622036 + +* Wed Aug 08 2018 Florian Müllner - 3.26.2-16 +- Fix support for external monitor configurations +- Resolves: #1622000 + * Tue Jul 17 2018 Florian Müllner - 3.26.2-15 - Fix time comparison bug causing hang Resolves: #1601948