[mutter/wip/carlosg/x11-xdnd-fix] core: Initialize XDND later on MetaDisplay
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/carlosg/x11-xdnd-fix] core: Initialize XDND later on MetaDisplay
- Date: Wed, 10 Jul 2019 17:10:16 +0000 (UTC)
commit 17fbdd108339ca8ff24b17208b156951a03e1332
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Jul 10 18:48:36 2019 +0200
core: Initialize XDND later on MetaDisplay
Initialization of XDND was added to MetaX11Display initialization on commit
1f133b3ed25. That's however too soon on X11 sessions, there, MetaX11Display
gets initialized before the MetaCompositor does, so looking for the overlay
window causes a crash.
Move it later into meta_display_open(), this only happens on X11
compositors, so this is the better place to ensure everything is in place
to initialize XDND.
Closes: https://gitlab.gnome.org/GNOME/mutter/issues/672
src/core/display.c | 13 +++++++++----
src/x11/meta-x11-display.c | 4 ----
2 files changed, 9 insertions(+), 8 deletions(-)
---
diff --git a/src/core/display.c b/src/core/display.c
index 4f56673b9..9c99f31b5 100644
--- a/src/core/display.c
+++ b/src/core/display.c
@@ -42,6 +42,7 @@
#include "backends/meta-cursor-sprite-xcursor.h"
#include "backends/meta-cursor-tracker-private.h"
+#include "backends/meta-dnd-private.h"
#include "backends/meta-idle-monitor-dbus.h"
#include "backends/meta-input-settings-private.h"
#include "backends/meta-logical-monitor.h"
@@ -793,11 +794,15 @@ meta_display_open (void)
g_signal_connect (display->gesture_tracker, "state-changed",
G_CALLBACK (gesture_tracker_state_changed), display);
- /* We know that if mutter is running as a Wayland compositor,
- * we start out with no windows.
- */
if (!meta_is_wayland_compositor ())
- meta_display_manage_all_windows (display);
+ {
+ meta_dnd_init_xdnd (display->x11_display);
+
+ /* We know that if mutter is running as a Wayland compositor,
+ * we start out with no windows.
+ */
+ meta_display_manage_all_windows (display);
+ }
if (old_active_xwindow != None)
{
diff --git a/src/x11/meta-x11-display.c b/src/x11/meta-x11-display.c
index e9428e54d..3174d8c4e 100644
--- a/src/x11/meta-x11-display.c
+++ b/src/x11/meta-x11-display.c
@@ -48,7 +48,6 @@
#include <X11/extensions/Xrandr.h>
#include "backends/meta-backend-private.h"
-#include "backends/meta-dnd-private.h"
#include "backends/meta-cursor-sprite-xcursor.h"
#include "backends/meta-logical-monitor.h"
#include "backends/meta-settings-private.h"
@@ -1343,9 +1342,6 @@ meta_x11_display_new (MetaDisplay *display, GError **error)
meta_x11_startup_notification_init (x11_display);
meta_x11_selection_init (x11_display);
- if (!meta_is_wayland_compositor ())
- meta_dnd_init_xdnd (x11_display);
-
return x11_display;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]