@@ -191,22 +191,31 @@ class StaplerViewModel: ObservableObject {
191191 objectWillChange. send ( )
192192 }
193193
194- func addAliasesViaFileSelector( ) {
194+ func addAliasesViaFileSelector( ) -> Bool {
195195 let panel = NSOpenPanel ( )
196196 panel. allowsMultipleSelection = true
197197 panel. canChooseDirectories = false
198198 panel. canChooseFiles = true
199199
200200 if panel. runModal ( ) == . OK {
201+ var addedAliases = false
201202 for url in panel. urls {
202203 do {
203204 let newAlias = try AliasItem ( url: url)
204205 addAlias ( newAlias)
206+ addedAliases = true
205207 } catch {
206208 handleError ( error)
207209 }
208210 }
211+
212+ if addedAliases {
213+ hasUnsavedChanges = true
214+ objectWillChange. send ( )
215+ return true
216+ }
209217 }
218+ return false
210219 }
211220
212221 func handleError( _ error: Error ) {
@@ -341,7 +350,6 @@ struct ContentView: View {
341350 NSEvent . addLocalMonitorForEvents ( matching: . keyDown) { event in
342351 if event. keyCode == 36 { // Return key
343352 launchSelected ( )
344- return nil
345353 } else if event. keyCode == 49 { // Space key
346354 showQuickLook ( )
347355 return nil
@@ -425,8 +433,9 @@ struct ContentView: View {
425433
426434 private func setupNotificationObservers( ) {
427435 NotificationCenter . default. addObserver ( forName: . addAlias, object: nil , queue: . main) { _ in
428- viewModel. addAliasesViaFileSelector ( )
429- updateDocument ( )
436+ if viewModel. addAliasesViaFileSelector ( ) {
437+ updateDocument ( )
438+ }
430439 }
431440 NotificationCenter . default. addObserver ( forName: . removeAlias, object: nil , queue: . main) { _ in
432441 removeSelectedAliases ( )
@@ -455,6 +464,8 @@ struct ContentView: View {
455464 }
456465
457466 private func launchSelected( ) {
467+ guard !NSEvent. modifierFlags. contains ( . command) else { return }
468+
458469 if selection. isEmpty {
459470 // If no items are selected, launch all items
460471 viewModel. launchAliases ( at: IndexSet ( integersIn: 0 ..< viewModel. document. aliases. count) )
0 commit comments