diff options
author | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-01 13:56:40 -0400 |
---|---|---|
committer | Jasper St. Pierre <jstpierre@mecheye.net> | 2014-04-01 13:56:40 -0400 |
commit | 29396014fd7965d757c7989194e3e4b0f6569fae (patch) | |
tree | 378d9629a396a7ff2f9a7d4c8cacbb1cf474d281 | |
parent | 899d4d84772c3cf5e4458923ce03d4d95837f2ac (diff) | |
download | mutter-29396014fd7965d757c7989194e3e4b0f6569fae.tar.gz |
backend: Fix the nested mode
-rw-r--r-- | src/backends/meta-backend.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/backends/meta-backend.c b/src/backends/meta-backend.c index 464b44218..b5ea43d5e 100644 --- a/src/backends/meta-backend.c +++ b/src/backends/meta-backend.c @@ -88,8 +88,23 @@ meta_clutter_init (void) { GSource *source; - clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); - clutter_x11_disable_event_retrieval (); + /* When running as an X11 compositor, we install our own event filter and + * pass events to Clutter explicitly, so we need to prevent Clutter from + * handling our events. + * + * However, when running as a Wayland compostior under X11 nested, Clutter + * Clutter needs to see events related to its own window. We need to + * eventually replace this with a proper frontend / backend split: Clutter + * under nested is connecting to the "host X server" to get its events it + * needs to put up a window, and GTK+ is connecting to the "inner X server". + * The two would the same in the X11 compositor case, but not when running + * XWayland as a Wayland compositor. + */ + if (!meta_is_wayland_compositor ()) + { + clutter_x11_set_display (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ())); + clutter_x11_disable_event_retrieval (); + } /* If we're running on bare metal, we're a display server, * so start talking to weston-launch. */ |