GNOME Bugzilla – Bug 703188
Stage doesn't appear when running under Wayland
Last modified: 2013-07-02 15:00:16 UTC
Following changes in the Cogl behaviour around calling wl_shell_surface_set_toplevel we must adapt our behaviour to trigger Cogl to make this API call. As mentioned in the commit message - we will need to revisit this when we land the foreign surface support (https://bugzilla.gnome.org/show_bug.cgi?id=699578)
Created attachment 247903 [details] [review] wayland: show the Cogl onscreen 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.
Review of attachment 247903 [details] [review]: why can't cogl_onscreen_show() be called on the generic ClutterStageCogl implementation? would this have side effects when called on other backends?
(In reply to comment #2) > Review of attachment 247903 [details] [review]: > > why can't cogl_onscreen_show() be called on the generic ClutterStageCogl > implementation? would this have side effects when called on other backends? Thanks for the prompt feedback. I'll definitely look at doing that there - although I think it might just be better to go straight in an call wl_shell_surface_toplevel. We've never called cogl_onscreen_show and I have no idea what effect that might have. This will also make things less confusing when we deal with the foreign surface where we definitely don't want to set_toplevel.
Created attachment 247968 [details] [review] 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.
Review of attachment 247968 [details] [review]: looks good to me.
Attachment 247968 [details] pushed as 5c93c0a - wayland: make the surface toplevel when showing the stage