diff --git a/plugins/editor/src/editor/NativeHelpers.cpp b/plugins/editor/src/editor/NativeHelpers.cpp index 1fdfcedd..f089b258 100644 --- a/plugins/editor/src/editor/NativeHelpers.cpp +++ b/plugins/editor/src/editor/NativeHelpers.cpp @@ -198,12 +198,21 @@ static std::vector createForkEnviron() return newEnv; } -static constexpr char zenityPath[] = "/usr/bin/zenity"; +static const std::string zenityPath = [] { + auto glibPath = g_find_program_in_path("zenity"); + if (glibPath) { + std::string s { glibPath }; + g_free(glibPath); + return s; + } else { + return std::string("/usr/bin/zenity"); + } +}(); bool askQuestion(const char *text) { char *argv[] = { - const_cast(zenityPath), + const_cast(zenityPath.c_str()), const_cast("--question"), const_cast("--text"), const_cast(text), @@ -236,7 +245,7 @@ bool askQuestion(const char *text) bool isZenityAvailable() { - return access(zenityPath, X_OK) == 0; + return access(zenityPath.c_str(), X_OK) == 0; } std::string getOperatingSystemName()