From 5c93c0a1af1deb30ff312b38360987fec33d9d96 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Thu, 27 Jun 2013 14:22:02 +0100 Subject: [PATCH] wayland: make the surface toplevel when showing the stage Cogl (as of 0b2b46ce) now only sets the shell surface as toplevel when the CoglOnscreen is shown. Without calling wl_shell_surface_set_toplevel the compositor will not know what role to give to the compositor and thus the stage will not appear. When we look to support multiple roles / foreign surfaces we will need to revisit this call and ensure we only call it when we are working in the default case. https://bugzilla.gnome.org/show_bug.cgi?id=703188 --- clutter/wayland/clutter-stage-wayland.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/clutter/wayland/clutter-stage-wayland.c b/clutter/wayland/clutter-stage-wayland.c index 3c1943f81..9549f5430 100644 --- a/clutter/wayland/clutter-stage-wayland.c +++ b/clutter/wayland/clutter-stage-wayland.c @@ -134,9 +134,13 @@ clutter_stage_wayland_show (ClutterStageWindow *stage_window, gboolean do_raise) { ClutterStageCogl *stage_cogl = CLUTTER_STAGE_COGL (stage_window); + ClutterStageWayland *stage_wayland = CLUTTER_STAGE_WAYLAND (stage_window); clutter_stage_window_parent_iface->show (stage_window, do_raise); + /* TODO: must not call this on foreign surfaces when we add that support */ + wl_shell_surface_set_toplevel (stage_wayland->wayland_shell_surface); + /* We need to queue a redraw after the stage is shown because all of * the other queue redraws up to this point will have been ignored * because the actor was not visible. The other backends do not need