Skip to content

Commit 9899e8a

Browse files
Merge pull request #9 from bow-swift/open-dialog-bug
fix bug in OpenPanel
2 parents f4e044f + d50fd96 commit 9899e8a

File tree

3 files changed

+38
-13
lines changed

3 files changed

+38
-13
lines changed

nef-plugin.xcodeproj/project.pbxproj

+13-9
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
8B50B4A1234C8FBC00C2429D /* Reachability.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B50B4A0234C8FBC00C2429D /* Reachability.swift */; };
2323
8B7E0622235493F7003ED8E2 /* NSWindow+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E0621235493F7003ED8E2 /* NSWindow+Extension.swift */; };
2424
8B7E0624235498CA003ED8E2 /* OutputFolderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B7E0623235498CA003ED8E2 /* OutputFolderView.swift */; };
25+
8B91B1932360A3690041F79B /* DispatchGroup.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B91B1922360A3690041F79B /* DispatchGroup.swift */; };
2526
8B9F3CEF22EF2D48001EE2DF /* CarbonWebView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B9F3CEE22EF2D48001EE2DF /* CarbonWebView.swift */; };
2627
8B9F3CF122F036BD001EE2DF /* CarbonViewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B9F3CF022F036BD001EE2DF /* CarbonViewer.swift */; };
2728
8B9F3CF322F036E3001EE2DF /* LoadingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B9F3CF222F036E3001EE2DF /* LoadingView.swift */; };
@@ -89,6 +90,7 @@
8990
8B50B4A0234C8FBC00C2429D /* Reachability.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Reachability.swift; sourceTree = "<group>"; };
9091
8B7E0621235493F7003ED8E2 /* NSWindow+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSWindow+Extension.swift"; sourceTree = "<group>"; };
9192
8B7E0623235498CA003ED8E2 /* OutputFolderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutputFolderView.swift; sourceTree = "<group>"; };
93+
8B91B1922360A3690041F79B /* DispatchGroup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DispatchGroup.swift; sourceTree = "<group>"; };
9294
8B9F3CEE22EF2D48001EE2DF /* CarbonWebView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarbonWebView.swift; sourceTree = "<group>"; };
9395
8B9F3CF022F036BD001EE2DF /* CarbonViewer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CarbonViewer.swift; sourceTree = "<group>"; };
9496
8B9F3CF222F036E3001EE2DF /* LoadingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingView.swift; sourceTree = "<group>"; };
@@ -164,9 +166,10 @@
164166
8B3B21A822F8328B00E92BC9 /* Utils */ = {
165167
isa = PBXGroup;
166168
children = (
169+
8BEAFB11235C96F700118F31 /* Bookmark.swift */,
167170
8B3B21A922F8329900E92BC9 /* Browser.swift */,
171+
8B91B1922360A3690041F79B /* DispatchGroup.swift */,
168172
8BF9220523546D8D00C58AA0 /* OpenPanel.swift */,
169-
8BEAFB11235C96F700118F31 /* Bookmark.swift */,
170173
);
171174
path = Utils;
172175
sourceTree = "<group>";
@@ -436,6 +439,7 @@
436439
files = (
437440
8B2CE74622D89C8900571F24 /* CheckOptionView.swift in Sources */,
438441
8B9F3CF522F03704001EE2DF /* NSView+Layout.swift in Sources */,
442+
8B91B1932360A3690041F79B /* DispatchGroup.swift in Sources */,
439443
8B7E0622235493F7003ED8E2 /* NSWindow+Extension.swift in Sources */,
440444
8BF68FB322DE2154009E57A9 /* PreferencesViewModel.swift in Sources */,
441445
8B4D1E1522D7A37E004432CF /* PickerOptionView.swift in Sources */,
@@ -638,15 +642,15 @@
638642
CODE_SIGN_IDENTITY = "-";
639643
CODE_SIGN_STYLE = Manual;
640644
COMBINE_HIDPI_IMAGES = YES;
641-
CURRENT_PROJECT_VERSION = 100;
645+
CURRENT_PROJECT_VERSION = 1;
642646
DEVELOPMENT_TEAM = "";
643647
ENABLE_HARDENED_RUNTIME = NO;
644648
INFOPLIST_FILE = "nef/Support Files/Info.plist";
645649
LD_RUNPATH_SEARCH_PATHS = (
646650
"$(inherited)",
647651
"@executable_path/../Frameworks",
648652
);
649-
MARKETING_VERSION = 1.0;
653+
MARKETING_VERSION = 1.0.1;
650654
PRODUCT_BUNDLE_IDENTIFIER = com.fortysevendeg.nef;
651655
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)App";
652656
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -664,15 +668,15 @@
664668
CODE_SIGN_IDENTITY = "-";
665669
CODE_SIGN_STYLE = Manual;
666670
COMBINE_HIDPI_IMAGES = YES;
667-
CURRENT_PROJECT_VERSION = 100;
671+
CURRENT_PROJECT_VERSION = 1;
668672
DEVELOPMENT_TEAM = "";
669673
ENABLE_HARDENED_RUNTIME = NO;
670674
INFOPLIST_FILE = "nef/Support Files/Info.plist";
671675
LD_RUNPATH_SEARCH_PATHS = (
672676
"$(inherited)",
673677
"@executable_path/../Frameworks",
674678
);
675-
MARKETING_VERSION = 1.0;
679+
MARKETING_VERSION = 1.0.1;
676680
PRODUCT_BUNDLE_IDENTIFIER = com.fortysevendeg.nef;
677681
PRODUCT_MODULE_NAME = "$(PRODUCT_NAME:c99extidentifier)App";
678682
PRODUCT_NAME = "$(TARGET_NAME)";
@@ -688,7 +692,7 @@
688692
CODE_SIGN_IDENTITY = "-";
689693
CODE_SIGN_STYLE = Manual;
690694
COMBINE_HIDPI_IMAGES = YES;
691-
CURRENT_PROJECT_VERSION = 100;
695+
CURRENT_PROJECT_VERSION = 1;
692696
DEVELOPMENT_TEAM = "";
693697
ENABLE_HARDENED_RUNTIME = NO;
694698
INFOPLIST_FILE = "nef-plugin/Support Files/Info.plist";
@@ -698,7 +702,7 @@
698702
"@executable_path/../../../../Frameworks",
699703
);
700704
MACOSX_DEPLOYMENT_TARGET = 10.14;
701-
MARKETING_VERSION = 1.0;
705+
MARKETING_VERSION = 1.0.1;
702706
PRODUCT_BUNDLE_IDENTIFIER = "com.fortysevendeg.nef-plugin";
703707
PRODUCT_NAME = "$(TARGET_NAME)";
704708
PROVISIONING_PROFILE_SPECIFIER = "";
@@ -713,7 +717,7 @@
713717
CODE_SIGN_IDENTITY = "-";
714718
CODE_SIGN_STYLE = Manual;
715719
COMBINE_HIDPI_IMAGES = YES;
716-
CURRENT_PROJECT_VERSION = 100;
720+
CURRENT_PROJECT_VERSION = 1;
717721
DEVELOPMENT_TEAM = "";
718722
ENABLE_HARDENED_RUNTIME = NO;
719723
INFOPLIST_FILE = "nef-plugin/Support Files/Info.plist";
@@ -723,7 +727,7 @@
723727
"@executable_path/../../../../Frameworks",
724728
);
725729
MACOSX_DEPLOYMENT_TARGET = 10.14;
726-
MARKETING_VERSION = 1.0;
730+
MARKETING_VERSION = 1.0.1;
727731
PRODUCT_BUNDLE_IDENTIFIER = "com.fortysevendeg.nef-plugin";
728732
PRODUCT_NAME = "$(TARGET_NAME)";
729733
PROVISIONING_PROFILE_SPECIFIER = "";

nef/Utils/DispatchGroup.swift

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// Copyright © 2019 The nef Authors.
2+
3+
import Foundation
4+
5+
6+
func runSync<T>(on queue: DispatchQueue = .main, block: @escaping () -> T?) -> T? {
7+
guard !DispatchQueue.isMainThread else { return block() }
8+
return queue.sync { block() }
9+
}
10+
11+
12+
extension DispatchQueue {
13+
public static var currentLabel: String {
14+
return String(validatingUTF8: __dispatch_queue_get_label(nil)) ?? ""
15+
}
16+
17+
public static var isMainThread: Bool {
18+
currentLabel == "com.apple.main-thread"
19+
}
20+
}

nef/Utils/OpenPanel.swift

+5-4
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,11 @@ class OpenPanel {
5555

5656
// MARK: private methods
5757
private func runUserSelectionModal() -> URL? {
58-
guard dialog.runModal() == .OK,
59-
let selection = dialog.url else { return nil }
60-
61-
return selection
58+
runSync {
59+
guard self.dialog.runModal() == .OK,
60+
let url = self.dialog.url else { return nil }
61+
return url
62+
}
6263
}
6364

6465
// MARK: constants

0 commit comments

Comments
 (0)