Update previous patch to final upstream version
This commit is contained in:
parent
925c5eb245
commit
31b0b839af
68
792.patch
68
792.patch
@ -1,32 +1,53 @@
|
||||
From 09fbeec5bb7a848add737c5313e8e035fc24bad1 Mon Sep 17 00:00:00 2001
|
||||
From 850ef518795dcc20d3b9a4f661f70ff8d0ddacb2 Mon Sep 17 00:00:00 2001
|
||||
From: Carlos Garnacho <carlosg@gnome.org>
|
||||
Date: Wed, 11 Sep 2019 15:27:48 +0200
|
||||
Subject: [PATCH] display: Ensure ::x11-display-opened is emitted at a time
|
||||
there are handlers
|
||||
Date: Wed, 11 Sep 2019 22:26:49 +0200
|
||||
Subject: [PATCH] core: Split x11-display initialization in 2 signals
|
||||
|
||||
During display initialization, the MetaX11Display would be opened at a time
|
||||
when we didn't initialize yet the compositor/plugin. The plugin is certainly
|
||||
interested in ::x11-display-opened happening, so make sure the signal
|
||||
happens late enough that the upper layers are able to connect to the signal
|
||||
in advance.
|
||||
|
||||
Fixes xsettings/ibus-x11 initialization on the still default "initialize
|
||||
Xwayland on startup" wayland compositor behavior.
|
||||
We have a "setup" phase, used internally to initialize early the x11
|
||||
side of things like the stack tracker, and an "opened" phase where
|
||||
other upper parts may hook up to. This latter phase is delayed during
|
||||
initialization so the upper parts have a change to connect to on
|
||||
plugin creation.
|
||||
|
||||
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/771
|
||||
---
|
||||
src/core/display.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
src/core/display.c | 13 ++++++++++++-
|
||||
src/core/stack-tracker.c | 2 +-
|
||||
2 files changed, 13 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/core/display.c b/src/core/display.c
|
||||
index e803f5557..01a5974f4 100644
|
||||
index e803f5557..2ddcbbc1f 100644
|
||||
--- a/src/core/display.c
|
||||
+++ b/src/core/display.c
|
||||
@@ -657,12 +657,12 @@ meta_display_init_x11 (MetaDisplay *display,
|
||||
@@ -126,6 +126,7 @@ G_DEFINE_TYPE(MetaDisplay, meta_display, G_TYPE_OBJECT);
|
||||
enum
|
||||
{
|
||||
CURSOR_UPDATED,
|
||||
+ X11_DISPLAY_SETUP,
|
||||
X11_DISPLAY_OPENED,
|
||||
X11_DISPLAY_CLOSING,
|
||||
OVERLAY_KEY,
|
||||
@@ -232,6 +233,14 @@ meta_display_class_init (MetaDisplayClass *klass)
|
||||
NULL, NULL, NULL,
|
||||
G_TYPE_NONE, 0);
|
||||
|
||||
+ display_signals[X11_DISPLAY_SETUP] =
|
||||
+ g_signal_new ("x11-display-setup",
|
||||
+ G_TYPE_FROM_CLASS (klass),
|
||||
+ G_SIGNAL_RUN_LAST,
|
||||
+ 0,
|
||||
+ NULL, NULL, NULL,
|
||||
+ G_TYPE_NONE, 0);
|
||||
+
|
||||
display_signals[X11_DISPLAY_OPENED] =
|
||||
g_signal_new ("x11-display-opened",
|
||||
G_TYPE_FROM_CLASS (klass),
|
||||
@@ -657,12 +666,13 @@ meta_display_init_x11 (MetaDisplay *display,
|
||||
return FALSE;
|
||||
|
||||
display->x11_display = x11_display;
|
||||
- g_signal_emit (display, display_signals[X11_DISPLAY_OPENED], 0);
|
||||
+ g_signal_emit (display, display_signals[X11_DISPLAY_SETUP], 0);
|
||||
|
||||
meta_x11_display_create_guard_window (x11_display);
|
||||
|
||||
@ -36,7 +57,7 @@ index e803f5557..01a5974f4 100644
|
||||
meta_display_manage_all_xwindows (display);
|
||||
meta_compositor_redirect_x11_windows (display->compositor);
|
||||
}
|
||||
@@ -803,6 +803,7 @@ meta_display_open (void)
|
||||
@@ -803,6 +813,7 @@ meta_display_open (void)
|
||||
|
||||
if (display->x11_display)
|
||||
{
|
||||
@ -44,6 +65,19 @@ index e803f5557..01a5974f4 100644
|
||||
meta_x11_display_restore_active_workspace (display->x11_display);
|
||||
meta_x11_display_create_guard_window (display->x11_display);
|
||||
}
|
||||
diff --git a/src/core/stack-tracker.c b/src/core/stack-tracker.c
|
||||
index 5a2956c00..a37760ec2 100644
|
||||
--- a/src/core/stack-tracker.c
|
||||
+++ b/src/core/stack-tracker.c
|
||||
@@ -556,7 +556,7 @@ meta_stack_tracker_new (MetaDisplay *display)
|
||||
tracker->unverified_predictions = g_queue_new ();
|
||||
|
||||
g_signal_connect (display,
|
||||
- "x11-display-opened",
|
||||
+ "x11-display-setup",
|
||||
G_CALLBACK (query_xserver_stack),
|
||||
tracker);
|
||||
g_signal_connect (display,
|
||||
--
|
||||
2.22.0
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
Name: mutter
|
||||
Version: 3.34.0
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Summary: Window and compositing manager based on Clutter
|
||||
|
||||
License: GPLv2+
|
||||
@ -165,6 +165,9 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/%{name}.desktop
|
||||
%{_datadir}/mutter-%{mutter_api_version}/tests
|
||||
|
||||
%changelog
|
||||
* Thu Sep 12 2019 Kalev Lember <klember@redhat.com> - 3.34.0-3
|
||||
- Update previous patch to final upstream version
|
||||
|
||||
* Wed Sep 11 2019 Kalev Lember <klember@redhat.com> - 3.34.0-2
|
||||
- Backport a patch to fix xsettings/ibus-x11 initialization (#1750512)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user