@@ -14,7 +14,7 @@ class App: AppCenterApplication, NSApplicationDelegate {
1414 static var app : App !
1515 var thumbnailsPanel : ThumbnailsPanel !
1616 var preferencesWindow : PreferencesWindow !
17- var feedbackWindow : FeedbackWindow ?
17+ var feedbackWindow : FeedbackWindow !
1818 var isFirstSummon = true
1919 var appIsBeingUsed = false
2020 var shortcutsShouldBeDisabled = false
@@ -51,6 +51,7 @@ class App: AppCenterApplication, NSApplicationDelegate {
5151 Spaces . initialDiscovery ( )
5252 Applications . initialDiscovery ( )
5353 self . preferencesWindow = PreferencesWindow ( )
54+ self . feedbackWindow = FeedbackWindow ( )
5455 KeyboardEvents . observe ( )
5556 MouseEvents . observe ( )
5657 // TODO: undeterministic; events in the queue may still be processing; good enough for now
@@ -107,7 +108,16 @@ class App: AppCenterApplication, NSApplicationDelegate {
107108 appIsBeingUsed = false
108109 isFirstSummon = true
109110 MouseEvents . toggle ( false )
111+ hideThumbnailPanelWithoutChangingKeyWindow ( )
112+ }
113+
114+ // we don't want another window to become key when the thumbnailPanel is hidden
115+ func hideThumbnailPanelWithoutChangingKeyWindow( ) {
116+ preferencesWindow. canBecomeKey_ = false
117+ feedbackWindow. canBecomeKey_ = false
110118 thumbnailsPanel. orderOut ( nil )
119+ preferencesWindow. canBecomeKey_ = true
120+ feedbackWindow. canBecomeKey_ = true
111121 }
112122
113123 func closeSelectedWindow( ) {
@@ -136,19 +146,18 @@ class App: AppCenterApplication, NSApplicationDelegate {
136146 }
137147
138148 @objc func showFeedbackPanel( ) {
139- if feedbackWindow == nil {
140- feedbackWindow = FeedbackWindow ( )
141- }
142- Screen . repositionPanel ( feedbackWindow!, Screen . preferred ( ) , . appleCentered)
143- App . shared. activate ( ignoringOtherApps: true )
144- feedbackWindow!. makeKeyAndOrderFront ( nil )
149+ showSecondaryWindow ( feedbackWindow)
145150 }
146151
147152 @objc func showPreferencesWindow( ) {
148- if let preferencesWindow = preferencesWindow {
149- Screen . repositionPanel ( preferencesWindow, Screen . preferred ( ) , . appleCentered)
153+ showSecondaryWindow ( preferencesWindow)
154+ }
155+
156+ func showSecondaryWindow( _ window: NSWindow ? ) {
157+ if let window = window {
158+ Screen . repositionPanel ( window, Screen . preferred ( ) , . appleCentered)
150159 App . shared. activate ( ignoringOtherApps: true )
151- preferencesWindow . makeKeyAndOrderFront ( nil )
160+ window . makeKeyAndOrderFront ( nil )
152161 }
153162 }
154163
0 commit comments