Bug 77527

Summary: wl_shell maps a surface even without set_toplevel
Product: Wayland Reporter: Pekka Paalanen <ppaalanen>
Component: westonAssignee: Wayland bug list <wayland-bugs>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: medium    
Version: unspecified   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Pekka Paalanen 2014-04-16 13:46:45 UTC
With current Weston master (304996d182874ded26adce40ce1c29210fc5352b), Weston's desktop-shell will map a surface, which has a wl_shell_surface, but has not issued set_toplevel.

This can be easily tested by commenting out line clients/simple-touch.c:314, the one calling wl_shell_surface_set_toplevel(touch->shell_surface);, and running simple-touch. On the very next repaint, the window appears on screen, but does not participate in window management like Win+tab switching or activation.

With the above modification, the simple-touch surface should not be mapped at all.

Thanks to bug #77521 for making me try this.
Comment 1 Kristian Høgsberg 2014-04-30 16:09:53 UTC
commit ef6a7e46eb28d66ccb6d88fa81a55d1a106d632a
Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Date:   Wed Apr 30 14:15:14 2014 +0300

    shell: Don't map surfaces of type SHELL_SURFACE_NONE
    
    When commit 07926d90 factored out the code that chooses in which layer
    a surface is added to, it changed the behavior for surfaces with no
    type. Instead of not adding it to any layer, the surface is added to
    the current workspace.
    
    This patch restores the old behavior.
    
    Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77527

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.