From b96463b4116e24bdc89605a4dc2aea1763b54133 Mon Sep 17 00:00:00 2001 From: Wouter01 Date: Sat, 18 Mar 2023 20:04:19 +0100 Subject: [PATCH] Files & folders dropped on welcomewindow are opened Signed-off-by: Wouter01 --- .../Features/Documents/WorkspaceDocument.swift | 2 +- .../Welcome/Views/WelcomeWindowView.swift | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CodeEdit/Features/Documents/WorkspaceDocument.swift b/CodeEdit/Features/Documents/WorkspaceDocument.swift index 1fea6babb8..a5c553c98d 100644 --- a/CodeEdit/Features/Documents/WorkspaceDocument.swift +++ b/CodeEdit/Features/Documents/WorkspaceDocument.swift @@ -90,7 +90,7 @@ import CodeEditKit workspace: self ) - windowController.shouldCascadeWindows = false + windowController.shouldCascadeWindows = true windowController.window?.setFrameAutosaveName(self.fileURL?.absoluteString ?? "Untitled") self.addWindowController(windowController) diff --git a/CodeEdit/Features/Welcome/Views/WelcomeWindowView.swift b/CodeEdit/Features/Welcome/Views/WelcomeWindowView.swift index 102364d068..9d61ba05e9 100644 --- a/CodeEdit/Features/Welcome/Views/WelcomeWindowView.swift +++ b/CodeEdit/Features/Welcome/Views/WelcomeWindowView.swift @@ -37,5 +37,21 @@ struct WelcomeWindowView: View { .frame(width: 300) } .edgesIgnoringSafeArea(.top) + .onDrop(of: [.fileURL], isTargeted: .constant(true)) { providers in + NSApp.activate(ignoringOtherApps: true) + providers.forEach { + _ = $0.loadDataRepresentation(for: .fileURL) { data, _ in + if let data, let url = URL(dataRepresentation: data, relativeTo: nil) { + Task { + try? await CodeEditDocumentController + .shared + .openDocument(withContentsOf: url, display: true) + } + } + } + } + dismissWindow() + return true + } } }