Suppress tooltips on windows that are not active#11402
Merged
Merged
Conversation
Avalonia opens a tooltip on hover regardless of whether the owning window is foregrounded. On macOS this lets SE's toolbar hints leak in front of whatever other app the user is currently working in — they see "Open subtitle file" floating over their browser. Native macOS apps suppress tooltips when their window is not key. Register a global ToolTip.IsOpenProperty class handler that cancels the open transition whenever the control's top-level Window isn't active. The check generalizes to our own child windows too: when a dialog is open, the inactive main window stops showing hints, which matches user expectations across platforms. The handler is no-op on tooltips hosted on non-Window TopLevels (popups), so context-menu and flyout tooltips behave as before. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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.
Summary
Avalonia opens a tooltip on hover regardless of whether the owning window is foregrounded. On macOS this lets SE's toolbar hints leak in front of whatever other app the user is currently working in — they see "Open subtitle file" floating over their browser. Native macOS apps suppress tooltips when their window is not key.
Fixes the report that toolbar hints fire when other windows are active (at least on macOS).
Change
Register a global
ToolTip.IsOpenPropertyclass handler inProgram.ConfigureApplicationthat cancels the open transition whenever the control's top-level Window isn't active:The check generalizes to our own child windows too: when a dialog is open, the inactive main window stops showing hints, which matches user expectations across platforms. The handler is no-op on tooltips hosted on non-Window TopLevels (popups), so context-menu and flyout tooltips behave as before.
Targeting
IsOpenProperty.Changed(rather than the individualTipproperty on every control) means we don't need to enumerate the toolbar buttons or track their original tooltip content. New windows added in the future inherit the behavior automatically.Test plan
🤖 Generated with Claude Code