@@ -78,46 +78,49 @@ - (QSObject *)activateApplication:(QSObject *)dObject {
78
78
}
79
79
80
80
- (QSObject *)switchToApplication : (QSObject *)dObject {
81
- NSArray *array = [dObject arrayForType: QSProcessType];
82
- NSWorkspace *workspace = [NSWorkspace sharedWorkspace ];
81
+ QSGCDMainAsync (^{
82
+ NSArray *array = [dObject arrayForType: QSProcessType];
83
+ NSWorkspace *workspace = [NSWorkspace sharedWorkspace ];
83
84
84
- if (!array) {
85
- array = [dObject arrayForType: QSFilePathType];
85
+ if (!array) {
86
+ array = [dObject arrayForType: QSFilePathType];
86
87
87
- for (NSString * app in array) {
88
- [workspace openFile: app];
88
+ for (NSString * app in array) {
89
+ [workspace openFile: app];
90
+ }
91
+ return ;
89
92
}
90
- return nil ;
91
- }
92
-
93
- if ([[NSApp currentEvent ] type ] == NSEventTypeKeyDown && [[NSApp currentEvent ] modifierFlags ] & NSEventModifierFlagOption)
94
- [workspace hideOtherApplications: array];
95
-
96
- NSDictionary *procDict;
97
93
98
- for (procDict in array) {
99
-
100
- if (!procDict ) {
101
- [workspace launchApplication: [procDict objectForKey: @" NSApplicationPath" ]];
102
- continue ;
103
- }
104
- BOOL frontmost = [workspace applicationIsFrontmost: procDict];
105
- NSInteger behavior = [[NSUserDefaults standardUserDefaults ] integerForKey: @" QSActionAppReopenBehavior" ];
106
- if (frontmost) behavior = 2 ;
107
-
108
- switch (behavior) {
109
- case 0 :
110
- [workspace reopenApplication: procDict];
111
- break ;
112
- case 1 :
113
- [workspace activateApplication: procDict];
114
- break ;
115
- case 2 :
116
- [workspace switchToApplication: procDict frontWindowOnly: NO ];
117
- break ;
94
+ if ([[NSApp currentEvent ] type ] == NSEventTypeKeyDown && [[NSApp currentEvent ] modifierFlags ] & NSEventModifierFlagOption)
95
+ [workspace hideOtherApplications: array];
96
+
97
+ NSDictionary *procDict;
98
+
99
+ for (procDict in array) {
100
+
101
+ if (!procDict ) {
102
+ [workspace launchApplication: [procDict objectForKey: @" NSApplicationPath" ]];
103
+ continue ;
104
+ }
105
+ BOOL frontmost = [workspace applicationIsFrontmost: procDict];
106
+ NSInteger behavior = [[NSUserDefaults standardUserDefaults ] integerForKey: @" QSActionAppReopenBehavior" ];
107
+ if (frontmost) behavior = 2 ;
108
+
109
+ switch (behavior) {
110
+ case 0 :
111
+ [workspace reopenApplication: procDict];
112
+ break ;
113
+ case 1 :
114
+ [workspace activateApplication: procDict];
115
+ break ;
116
+ case 2 :
117
+ [workspace switchToApplication: procDict frontWindowOnly: NO ];
118
+ break ;
119
+ }
118
120
}
119
- }
120
121
122
+ return ;
123
+ });
121
124
return nil ;
122
125
}
123
126
0 commit comments