listless

A simple list app for Apple platforms
Log | Files | Refs | README | LICENSE

commit 163a0fb0e12dba17c58e7636e2a48cf46c7f27d3
parent 4ad0c6d7f6bec95f8a13fbb93843b01daf285f40
Author: Michael Camilleri <[email protected]>
Date:   Thu, 26 Mar 2026 14:52:44 +0900

Improve scope of focus guard

Diffstat:
MListlessiOS/Views/ItemListView.swift | 10++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/ListlessiOS/Views/ItemListView.swift b/ListlessiOS/Views/ItemListView.swift @@ -22,6 +22,10 @@ struct ItemListView: View, ItemListViewProtocol { var draftPlacement: DraftItemPlacement? var draftTitle: String = "" var fetchWorkaround: Int = 0 + + var isShowingOverlay: Bool { + isShowingSettings || isShowingSyncDiagnostics || isShowingRenameAlert + } } struct PullStateData { @@ -401,9 +405,8 @@ struct ItemListView: View, ItemListViewProtocol { .accessibilityIdentifier("item-list-scrollview") .background { let isEditing = if case .item = focusedFieldBinding { true } else { false } - let isShowingSheet = iState.isShowingSettings || iState.isShowingSyncDiagnostics KeyCommandBridge( - isActive: !isEditing && !isShowingSheet, + isActive: !isEditing && !iState.isShowingOverlay, onUp: { _ = navigateUp() }, onDown: { _ = navigateDown() }, onSpace: { _ = toggleSelectedItem() }, @@ -502,8 +505,7 @@ struct ItemListView: View, ItemListViewProtocol { handleFocusChange(from: oldValue, to: newValue) if newValue == nil, - !iState.isShowingSettings, - !iState.isShowingSyncDiagnostics + !iState.isShowingOverlay { if let pending = fState.pendingFocus { focusedFieldBinding = pending