From b757292211e9bf02a87e37e38cd9eb4b5c0c5922 Mon Sep 17 00:00:00 2001 From: Travis McLane Date: Fri, 29 Sep 2023 12:13:51 -0500 Subject: [PATCH] [v3 darwin] use NativeWindowHandle --- v3/pkg/application/dialogs.go | 6 +++--- v3/pkg/application/dialogs_darwin.go | 9 ++++++--- v3/pkg/application/messageprocessor_dialog.go | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/v3/pkg/application/dialogs.go b/v3/pkg/application/dialogs.go index 66fe0cd50..dfc9c9227 100644 --- a/v3/pkg/application/dialogs.go +++ b/v3/pkg/application/dialogs.go @@ -361,7 +361,7 @@ type SaveFileDialogOptions struct { Filename string ButtonText string Filters []FileFilter - Window Window + Window *WebviewWindow } type SaveFileDialogStruct struct { @@ -378,7 +378,7 @@ type SaveFileDialogStruct struct { buttonText string filters []FileFilter - window Window + window *WebviewWindow impl saveFileDialogImpl title string @@ -440,7 +440,7 @@ func (d *SaveFileDialogStruct) SetDirectory(directory string) *SaveFileDialogStr } func (d *SaveFileDialogStruct) AttachToWindow(window Window) *SaveFileDialogStruct { - d.window = window + d.window = window.(*WebviewWindow) return d } diff --git a/v3/pkg/application/dialogs_darwin.go b/v3/pkg/application/dialogs_darwin.go index 133d4d3bf..b3753092b 100644 --- a/v3/pkg/application/dialogs_darwin.go +++ b/v3/pkg/application/dialogs_darwin.go @@ -364,7 +364,8 @@ func (m *macosDialog) show() { var parent unsafe.Pointer if m.dialog.window != nil { // get NSWindow from window - parent = m.dialog.window.impl.(*macosWebviewWindow).nsWindow + window, _ := m.dialog.window.NativeWindowHandle() + parent = unsafe.Pointer(window) } alertType, ok := alertTypeMap[m.dialog.DialogType] @@ -423,7 +424,8 @@ func (m *macosOpenFileDialog) show() ([]string, error) { nsWindow := unsafe.Pointer(nil) if m.dialog.window != nil { // get NSWindow from window - nsWindow = (m.dialog.window).(*WebviewWindow).impl.(*macosWebviewWindow).nsWindow + window, _ := m.dialog.window.NativeWindowHandle() + nsWindow = unsafe.Pointer(window) } // Massage filter patterns into macOS format @@ -507,7 +509,8 @@ func (m *macosSaveFileDialog) show() (string, error) { nsWindow := unsafe.Pointer(nil) if m.dialog.window != nil { // get NSWindow from window - nsWindow, _ = m.dialog.window.NativeWindowHandle() + window, _ := m.dialog.window.NativeWindowHandle() + nsWindow = unsafe.Pointer(window) } C.showSaveFileDialog(C.uint(m.dialog.id), C.bool(m.dialog.canCreateDirectories), diff --git a/v3/pkg/application/messageprocessor_dialog.go b/v3/pkg/application/messageprocessor_dialog.go index 12d4495e5..74718a9ae 100644 --- a/v3/pkg/application/messageprocessor_dialog.go +++ b/v3/pkg/application/messageprocessor_dialog.go @@ -143,7 +143,7 @@ func (m *MessageProcessor) processDialogMethod(method int, rw http.ResponseWrite } var detached = args.Bool("Detached") if detached == nil || !*detached { - options.Window = window + options.Window = window.(*WebviewWindow) } dialog := SaveFileDialogWithOptions(&options)