Skip to content

lib/ui: move dropdown/combobox open lists to the #565 overlay pass; fold grid's row-label gutter into its rect #859

Description

@InauguralPhysicist

Follow-up to #823. The containment clip in render has four registry opt-outs ("clip": 0) for widgets whose render legitimately leaves the widget rect. Two of them are the real remaining debt:

1. dropdown / combobox draw their open lists in-tree. The open list renders below the widget rect during the tree walk, so (a) it cannot be clipped without erasing it — hence the opt-out — and (b) it is painted over by any later sibling, the same z-order class #565 fixed for menu_bar pull-downs by moving them to the _render_popups overlay pass. Moving the open lists there fixes both: the anchor widget becomes clippable like everything else, and an open list sits above whatever it overlaps. Note the current behavior inside a clipped ancestor (scroll_panel, dock region): the open list crops at the ancestor edge; the overlay pass frees it from that too.

2. grid's row-label gutter draws left of x, outside its own bounds (documented in docs/STDLIB.md). Fold the gutter into the widget rect (shift the cell origin right by row_label_w) and drop grid's opt-out.

menu (a floating popup by design) and dialog (full-screen dim overlay) keep their opt-outs.

Acceptance: opt-outs reduced to menu + dialog; an open dropdown inside a panel renders above later siblings and past the panel edge; stubbed [63] + real-pixel [132] both extended to cover the flipped widgets.

Owner: eigenscript-ui-toolkit-engineer.

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