[v3 darwin] use NativeWindowHandle

This commit is contained in:
Travis McLane 2023-09-29 12:13:51 -05:00
commit b757292211
3 changed files with 10 additions and 7 deletions

View file

@ -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
}

View file

@ -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),

View file

@ -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)