Hi, > > > - if (!new_surface) { > > > + if (is_placeholder(new_surface)) { > > > > Same here. > > The other surfaces created by qemu_create_message_surface() are not > considered as "placeholder" here, and have contents to be displayed.
Which ones? Pretty much any qemu_create_message_surface() use is basically "we can't show the guest display for $reason". Which is the definition of a placeholder surface, isn't it? > Since no emulated devices give NULL to dpy_gfx_replace_surface for the > primary connection, it will never get the "placeholder", and its > window will be always shown. Well, this could change. The special handling for scanout #0 in virtio-gpu can go away when we have this in place. Also: The patch os growing, and it probably makes sense to split it into a series, with one patch adding the placeholder flag and the core code in console.c, next one patch for each UI, and finally one for virtio-gpu ... take care, Gerd