diff --git a/v3/pkg/application/dialogs.go b/v3/pkg/application/dialogs.go index 394d32181..d9d99c645 100644 --- a/v3/pkg/application/dialogs.go +++ b/v3/pkg/application/dialogs.go @@ -179,6 +179,7 @@ type OpenFileDialogOptions struct { TreatsFilePackagesAsDirectories bool AllowsOtherFileTypes bool Filters []FileFilter + Window *WebviewWindow Title string Message string @@ -327,6 +328,7 @@ func (d *OpenFileDialog) SetOptions(options *OpenFileDialogOptions) { d.treatsFilePackagesAsDirectories = options.TreatsFilePackagesAsDirectories d.allowsOtherFileTypes = options.AllowsOtherFileTypes d.filters = options.Filters + d.window = options.Window } func newOpenFileDialog() *OpenFileDialog { @@ -359,6 +361,7 @@ type SaveFileDialogOptions struct { Filename string ButtonText string Filters []FileFilter + Window *WebviewWindow } type SaveFileDialog struct { @@ -397,6 +400,8 @@ func (d *SaveFileDialog) SetOptions(options *SaveFileDialogOptions) { d.directory = options.Directory d.filename = options.Filename d.buttonText = options.ButtonText + d.filters = options.Filters + d.window = options.Window } // AddFilter adds a filter to the dialog. The filter is a display name and a semicolon separated list of extensions. diff --git a/v3/pkg/application/messageprocessor_dialog.go b/v3/pkg/application/messageprocessor_dialog.go index 59fb02ab8..0810d8138 100644 --- a/v3/pkg/application/messageprocessor_dialog.go +++ b/v3/pkg/application/messageprocessor_dialog.go @@ -54,7 +54,7 @@ func (m *MessageProcessor) processDialogMethod(method string, rw http.ResponseWr case "Question": dialog = globalApplication.QuestionDialog() } - var detached = params.Bool("Detached") + var detached = args.Bool("Detached") if detached == nil || !*detached { dialog.AttachToWindow(window) } @@ -77,6 +77,10 @@ func (m *MessageProcessor) processDialogMethod(method string, rw http.ResponseWr m.httpError(rw, "Error parsing dialog options: %s", err.Error()) return } + var detached = args.Bool("Detached") + if detached == nil || !*detached { + options.Window = window + } dialog := globalApplication.OpenFileDialogWithOptions(&options) go func() { @@ -110,6 +114,10 @@ func (m *MessageProcessor) processDialogMethod(method string, rw http.ResponseWr m.httpError(rw, "Error parsing dialog options: %s", err.Error()) return } + var detached = args.Bool("Detached") + if detached == nil || !*detached { + options.Window = window + } dialog := globalApplication.SaveFileDialogWithOptions(&options) go func() {