Rewrite widget interactions - #2
Open
cyberphantom52 wants to merge 40 commits into
Open
Conversation
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.