Repository navigation
feat: close the popover when a pane click hands focus to its terminal - #6
Merged
Merged
Conversation
Clicking a row in the popover focuses the pane in herdr and activates the hosting terminal, but the popover stayed in front of the window it had just brought forward. `.transient` does not cover this: it closes on interaction *outside* the popover, and the row click is inside it. `jump(to:)` now closes the popover before the focus request, so the terminal comes forward to an unobstructed screen. The notification-activation path shares `jump(to:)`, where the popover is normally already closed and the `isShown` guard makes the call a no-op. Co-Authored-By: Claude Opus 5 (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.
What
Clicking a session row in the popover now closes the popover as it hands focus to the terminal.
Until now the click issued
agent.focusand activated the hosting terminal, but the popover stayed open in front of the window it had just brought forward.NSPopover.behavior = .transientdoes not cover this: it closes on interaction outside the popover, and a row click is inside it.How
MenuBarController.closePopover(), which callsperformClose(nil)only while the popoverisShown.AppCoordinator.jump(to:)— before the focus request and the terminal activation, so the window that comes forward is unobstructed.jump(to:), where the popover is normally already closed and theisShownguard makes the call a no-op.This is AppKit window control rather than decision logic, so it lives in the app layer and not in
KelpieCore.Verification
xcodebuild -project Kelpie.xcodeproj -scheme Kelpie -configuration Debug -destination 'platform=macOS' ... build→ BUILD SUCCEEDEDswift test→ 128 tests in 17 suites passed (KelpieCore/KelpieClientare unchanged)🤖 Generated with Claude Code