11#[ cfg( target_os = "macos" ) ]
22use graphite_editor:: messages:: layout:: utility_types:: layout_widget:: LayoutTarget ;
33use graphite_editor:: messages:: prelude:: FrontendMessage ;
4- use std:: path:: PathBuf ;
54
65use super :: DesktopWrapperMessageDispatcher ;
76use super :: messages:: { DesktopFrontendMessage , Document , FileFilter , OpenFileDialogContext , SaveFileDialogContext } ;
@@ -25,15 +24,21 @@ pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageD
2524 context : OpenFileDialogContext :: Import ,
2625 } ) ;
2726 }
28- FrontendMessage :: TriggerSaveDocument { document_id, name, path, content } => {
27+ FrontendMessage :: TriggerSaveDocument {
28+ document_id,
29+ name,
30+ path,
31+ folder,
32+ content,
33+ } => {
2934 let content = content. into_vec ( ) ;
3035 if let Some ( path) = path {
3136 dispatcher. respond ( DesktopFrontendMessage :: WriteFile { path, content } ) ;
3237 } else {
3338 dispatcher. respond ( DesktopFrontendMessage :: SaveFileDialog {
3439 title : "Save Document" . to_string ( ) ,
3540 default_filename : name,
36- default_folder : path . and_then ( |p| p . parent ( ) . map ( PathBuf :: from ) ) ,
41+ default_folder : folder ,
3742 filters : vec ! [ FileFilter {
3843 name: "Graphite" . to_string( ) ,
3944 extensions: vec![ "graphite" . to_string( ) ] ,
@@ -42,12 +47,12 @@ pub(super) fn intercept_frontend_message(dispatcher: &mut DesktopWrapperMessageD
4247 } ) ;
4348 }
4449 }
45- FrontendMessage :: TriggerSaveFile { name, content } => {
50+ FrontendMessage :: TriggerSaveFile { name, folder , content } => {
4651 let content = content. into_vec ( ) ;
4752 dispatcher. respond ( DesktopFrontendMessage :: SaveFileDialog {
4853 title : "Save File" . to_string ( ) ,
4954 default_filename : name,
50- default_folder : None ,
55+ default_folder : folder ,
5156 filters : Vec :: new ( ) ,
5257 context : SaveFileDialogContext :: File { content } ,
5358 } ) ;
0 commit comments