From 105d9f0d3a6ee29593a366fcec66c32a93bc9baa Mon Sep 17 00:00:00 2001 From: Travis McLane Date: Sun, 7 Apr 2024 16:37:46 -0500 Subject: [PATCH] allow directory selection --- v3/pkg/application/linux_cgo.go | 10 ++++++++-- v3/pkg/application/linux_purego.go | 9 +++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/v3/pkg/application/linux_cgo.go b/v3/pkg/application/linux_cgo.go index 2add24e1f..5d0931be6 100644 --- a/v3/pkg/application/linux_cgo.go +++ b/v3/pkg/application/linux_cgo.go @@ -1579,7 +1579,13 @@ func runChooserDialog(window pointer, allowMultiple, createFolders, showHidden b } func runOpenFileDialog(dialog *OpenFileDialogStruct) (chan string, error) { - const GtkFileChooserActionOpen = C.GTK_FILE_CHOOSER_ACTION_OPEN + var action int + + if dialog.canChooseDirectories { + action = C.GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER + } else { + action = C.GTK_FILE_CHOOSER_ACTION_OPEN + } window := nilPointer if dialog.window != nil { @@ -1598,7 +1604,7 @@ func runOpenFileDialog(dialog *OpenFileDialogStruct) (chan string, error) { dialog.showHiddenFiles, dialog.directory, dialog.title, - GtkFileChooserActionOpen, + action, buttonText, dialog.filters) } diff --git a/v3/pkg/application/linux_purego.go b/v3/pkg/application/linux_purego.go index 5c58ae578..1b94ba6e5 100644 --- a/v3/pkg/application/linux_purego.go +++ b/v3/pkg/application/linux_purego.go @@ -1084,6 +1084,15 @@ func runChooserDialog(window pointer, allowMultiple, createFolders, showHidden b // dialog related func runOpenFileDialog(dialog *OpenFileDialogStruct) ([]string, error) { const GtkFileChooserActionOpen = 0 + const GtkFileChooserActionSelectFolder = 2 + + var action int + + if dialog.canChooseDirectories { + action = GtkFileChooserActionSelectFolder + } else { + action = GtkFileChooserActionOpen + } window := pointer(0) if dialog.window != nil {