Skip to content

unmapped layer surfaces can contribute to the exclusive zone #1828

@alex-huff

Description

@alex-huff

I believe unmapped layer surfaces should not be considered during arranging. Currently, if an unmapped layer surface is configured with an exclusive zone it can affect the placement of other layer surfaces and will reduce the area returned by non_exclusive_zone().

This can be reproduced in anvil with kitty:

  1. run kitten panel --config=NONE --listen-on=unix:@panel-socket --override=allow_remote_control=socket-only --edge=top
    This creates a single line terminal layer surface anchored to LEFT|RIGHT|TOP.

  2. run kitten @ --to=unix:@panel-socket --use-password=never resize-os-window --action=toggle-visibility
    This unmaps the layer surface. At this point smithay resets the layer surface state to the default (no exclusive zone, 0 width, 0 height etc.).

  3. run kitten @ --to=unix:@panel-socket --use-password=never resize-os-window --action=os-panel edge=top
    This re-configures the layer surface state to what it was after step 1 but doesn't remap it.

  4. run kitten panel --config=NONE --edge=top
    This creates another single line terminal layer surface anchored to LEFT|RIGHT|TOP.

Notice that the newly created layer surface is shifted down to make room for the unmapped layer surface. This behavior isn't present in the other compositors I tested.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions