Skip to content

fix(tao): align standalone tray popup wheel scroll with DecoratedWindow - #610

Merged
kdroidFilter merged 3 commits into
mainfrom
fix/tao-standalone-popup-scroll
Aug 29, 2026
Merged

fix(tao): align standalone tray popup wheel scroll with DecoratedWindow#610
kdroidFilter merged 3 commits into
mainfrom
fix/tao-standalone-popup-scroll

Conversation

@kdroidFilter

Copy link
Copy Markdown
Collaborator

Summary

  • Route tray, overlay, and owner-based popup wheel events through one AWT-shaped Compose dispatch (dispatchAwtShapedScroll) after platform mapping (Win32 / AppKit / X11 Button4–7).
  • Install TaoWindowsScrollConfig on the Windows standalone panel so a notch scrolls the same viewport fraction as a DecoratedWindow (3 lines/notch).
  • Linux standalone panels now report scrollAmount = 3, matching TaoWindow SCROLL_LINE.
  • Standalone popup requestFrame paints immediately when already on the Tao main thread (StandaloneFramePump), so a wheel flood cannot starve MainEventsCleared.

Test plan

  • :decorated-window-tao:ktlintCheck and :detekt
  • :decorated-window-tao:apiDump (no public ABI change)
  • Unit tests: Win32WheelDeltaTest, LinuxWheelDeltaTest, MacOsWheelDeltaTest, TaoWindowScrollTest, TaoSceneTestBatteryDriftTest
  • Manual: TrayApp Windows — LazyColumn wheel distance and smoothness vs a DecoratedWindow
  • Manual: TrayApp Linux — discrete wheel; macOS trackpad precise deltas

Feed tray/overlay/owner-based popup wheel events through the same AWT-shaped dispatch as TaoWindow, apply Windows lines-per-notch via LocalScrollConfig, and paint standalone popup frames inline when already on the main thread so a wheel flood cannot starve MainEventsCleared.
Make disposed volatile, document that rendering is main-thread-only, and add mapper tests so Windows/Linux/macOS scrollAmount policy cannot be silently unified.
Tests no longer mutate TaoMainDispatcher.taoMainThread or swallow leaked fallback frames. Nested work is a drained queue; a posted frame after dispose is dropped.
@kdroidFilter
kdroidFilter merged commit b8f775d into main Aug 29, 2026
20 of 24 checks passed
@kdroidFilter
kdroidFilter deleted the fix/tao-standalone-popup-scroll branch August 31, 2026 11:01
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