From 7fe6837b4f28590d4360c783696df5e294a609d1 Mon Sep 17 00:00:00 2001 From: Nuno Cruces Date: Mon, 6 Jan 2020 12:35:45 +0000 Subject: [PATCH] Message dialogs improvements (linux). --- file_linux.go | 8 ++++---- internal/osa/osa.go | 1 + msg_linux.go | 7 +++++-- 3 files changed, 10 insertions(+), 6 deletions(-) create mode 100644 internal/osa/osa.go diff --git a/file_linux.go b/file_linux.go index a6a410d..c3c644c 100644 --- a/file_linux.go +++ b/file_linux.go @@ -18,7 +18,7 @@ func SelectFile(options ...Option) (string, error) { args = append(args, zenityFilters(opts.filters)...) cmd := exec.Command("zenity", args...) out, err := cmd.Output() - if err, ok := err.(*exec.ExitError); ok && err.ExitCode() == 1 { + if err, ok := err.(*exec.ExitError); ok && err.ExitCode() != 255 { return "", nil } if err != nil { @@ -43,7 +43,7 @@ func SelectFileMutiple(options ...Option) ([]string, error) { args = append(args, zenityFilters(opts.filters)...) cmd := exec.Command("zenity", args...) out, err := cmd.Output() - if err, ok := err.(*exec.ExitError); ok && err.ExitCode() == 1 { + if err, ok := err.(*exec.ExitError); ok && err.ExitCode() != 255 { return nil, nil } if err != nil { @@ -71,7 +71,7 @@ func SelectFileSave(options ...Option) (string, error) { args = append(args, zenityFilters(opts.filters)...) cmd := exec.Command("zenity", args...) out, err := cmd.Output() - if err, ok := err.(*exec.ExitError); ok && err.ExitCode() == 1 { + if err, ok := err.(*exec.ExitError); ok && err.ExitCode() != 255 { return "", nil } if err != nil { @@ -95,7 +95,7 @@ func SelectDirectory(options ...Option) (string, error) { } cmd := exec.Command("zenity", args...) out, err := cmd.Output() - if err, ok := err.(*exec.ExitError); ok && err.ExitCode() == 1 { + if err, ok := err.(*exec.ExitError); ok && err.ExitCode() != 255 { return "", nil } if err != nil { diff --git a/internal/osa/osa.go b/internal/osa/osa.go new file mode 100644 index 0000000..0760856 --- /dev/null +++ b/internal/osa/osa.go @@ -0,0 +1 @@ +package osa diff --git a/msg_linux.go b/msg_linux.go index 6911a74..0b42c81 100644 --- a/msg_linux.go +++ b/msg_linux.go @@ -55,8 +55,11 @@ func message(arg, text string, options []Option) (bool, error) { } cmd := exec.Command("zenity", args...) - _, err := cmd.Output() - if err, ok := err.(*exec.ExitError); ok && err.ExitCode() == 1 { + out, err := cmd.Output() + if err, ok := err.(*exec.ExitError); ok && err.ExitCode() != 255 { + if len(out) > 0 && string(out[:len(out)-1]) == opts.extra { + return false, ErrExtraButton + } return false, nil } if err != nil {