Skip to content

feat: full windows #82

Closed
Closed

Description

@octalide

What

Windows today drag and collapse, stack by call order and have a fixed width. They need to be full windows before docking can build on them.

Layer bands

push_layer gives a child the parent's layer plus one, so sibling popups and windows land on the same layer and window z-order has nowhere to live. Replace that with layer bands defined as data: base content, docked content, floating windows in z-order, overlays (#84), popups and menus, modals (#100), tooltips, and the drag preview (#99). The context assigns each window a layer within its band from its z-order, and nested popups still stack above their parent within the popup band.

Needs #94 (stable ids) and #95 (window state and persistence). #96 supplies resize cursors.

Acceptance

  • Layer bands as data, with routing and paint order following them, and tests for sibling popups and reordered windows
  • Resize from every edge and corner, with min and max sizes, showing resize cursors
  • Z order kept by the context: clicking a window brings it to front, independent of call order
  • Close button, auto-size to content, and a scrollable body
  • Window identity is its hashed id, so state survives reorderings of the calling code
  • Position, size, open and collapsed state persist through the state store's save and load
  • Windows can be pinned or locked, and declare flags (no title, no resize, no move, no background)

Activity

  1. added
    minorBackwards-compatible new feature or capability
    featureNew capability or feature addition
    on Oct 1, 2026
  2. added a commit that references this issue on Oct 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featureNew capability or feature additionminorBackwards-compatible new feature or capability

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions