← All repositories

listless

A simple list app for Apple platforms

git clone https://code.inqk.net/listless.git


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