Skip to content

Rewrite widget interactions - #2

Open
cyberphantom52 wants to merge 40 commits into
migrationfrom
next
Open

Rewrite widget interactions#2
cyberphantom52 wants to merge 40 commits into
migrationfrom
next

Conversation

@cyberphantom52

Copy link
Copy Markdown
Member

No description provided.

Introduce shared Interaction and Control primitives for pointer, touch, keyboard, focus, and disabled-state handling. Migrate buttons, cycle rows, switchers, tabs, and SplitView pointer routing while retaining Pressable for the remaining callers.
Introduce a private Surface wrapper that derives contrast from the incoming iced theme and carries it through descendant overlays. Reuse one semantic surface recipe across cards, information panels, and status presentation.
Lower ListRow and ExpanderRow into shared Controls only after RowGroup owns the surrounding surface. Keep disclosure state in iced's widget tree while preserving equal-height rows, spanning panels, overlap eviction, and disabled subtree behavior.
Route selector headers through the common Interaction state machine and reuse the grouped-row appearance and caret drawing. Reconcile keyboard highlights by stable option key when choices change.
Extract footer-first panel measurement, viewport-aware placement, scoped drawing, and child overlay routing into AnchoredPanel. Keep Search's stable-key keyboard policy local while removing its duplicated overlay implementation.
Move Popover onto the same footer, row styling, placement, dismissal, and descendant-overlay routing used by Search. Remove the second custom overlay implementation without changing the public Popover API.
All semantic controls now use Control or Interaction directly. Remove the obsolete Pressable state machine and its SharedFlag synchronization path after the final consumer migration.
Add selected, actionable, disabled, tooltip, footer, and outside-dismissal Popover states to the widget gallery so the shared anchored-panel behavior can be exercised by an external consumer.
Translate and clip the blocked master pane instead of shrinking it, and
retain the active panel throughout its close animation.
Render profile dialogs above the complete WindowFrame so their scrim and input blocking cover both panes and window chrome. Ignore close requests until the active dialog is dismissed.
Close the profile popover before changing panes so its overlay tree cannot be restored with stale layout state when returning from Profile Settings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant