Skip to content

fix: keep message action bars stable under the pointer - #19

Merged
itz4blitz merged 1 commit into
itz4blitz:mainfrom
vbmithr:fix/message-toolbar-hover
Oct 17, 2026
Merged

itz4blitz merged 1 commit into
itz4blitz:mainfrom
vbmithr:fix/message-toolbar-hover

Conversation

@vbmithr

@vbmithr vbmithr commented Oct 17, 2026

Copy link
Copy Markdown
Contributor

The message action bar flickered and lost clicks when the pointer moved onto its reaction/reply buttons. Its occluding hitbox made the pane report hover loss, which removed the toolbar; post-layout pointer tracking then recreated it. Right-click menus remained usable.

Track pointer geometry in a frame-scoped mouse-capture listener, and recheck row/toolbar bounds on pane hover loss instead of clearing ownership unconditionally. Retain the current message when moving onto its raised action bar and clear hover outside the viewport. Do not consume mouse events: tool buttons keep their existing click handlers and mouse-down propagation protection. Keep the existing menu/picker ownership and selection-drag suppression.

Update the system design specification with the hover-region behavior. Based directly on upstream main.

Validation:

  • All three message action tests pass, including a regression covering message-to-toolbar crossings, stationary reevaluation, neighboring rows, and viewport exit.
  • Arch package revision 17 built successfully; all fifteen package patches apply and changed build sources match.
  • The user reported the installed fix working. No automated GUI click test was performed.
  • git diff --check passes.

Track pointer geometry during mouse capture so the action bar's own
occlusion does not clear its message's hover state. Recheck bounds when
the pane loses hover, preserving ownership over the raised buttons and
clearing it when the pointer leaves. Keep button events unconsumed.

Cover toolbar crossings and stationary reevaluation with a regression
and document the hover region. All three message action tests pass.

Co-Authored-By: GPT-6 <noreply@openai.com>
@vbmithr
vbmithr requested a review from itz4blitz as a code owner October 17, 2026 16:08

@itz4blitz itz4blitz left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hover now follows the pointer across the raised action bar. The window listener is registered for the next frame during paint, the same way the text view already does, and it does not consume the event, so the buttons still receive the click. point_at still returns immediately while a menu, picker, confirm, or viewer is open, so those keep the row. The geometry test covers the occluding bar, a press that stays on it, and leaving the pane. macOS, Linux, and Windows are green on ff0ac94.

@itz4blitz
itz4blitz merged commit aa786e3 into itz4blitz:main Oct 17, 2026
3 checks passed
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.

2 participants