mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
Fix crash when XDG_CURRENT_DESKTOP isn't defined
This commit is contained in:
parent
6d23c773aa
commit
6ebb92c6b9
1 changed files with 28 additions and 23 deletions
|
|
@ -281,29 +281,34 @@ Oneshot::Oneshot(RGSSThreadData &threadData) :
|
|||
#endif
|
||||
|
||||
#ifdef OS_LINUX
|
||||
std::string desktop(getenv("XDG_CURRENT_DESKTOP"));
|
||||
std::transform(desktop.begin(), desktop.end(), desktop.begin(), ::tolower);
|
||||
if (desktop.find("cinnamon") != std::string::npos) {
|
||||
desktopEnv = "cinnamon";
|
||||
gtk_init(0, 0);
|
||||
} else if (
|
||||
desktop.find("gnome") != std::string::npos ||
|
||||
desktop.find("unity") != std::string::npos
|
||||
) {
|
||||
desktopEnv = "gnome";
|
||||
gtk_init(0, 0);
|
||||
} else if (desktop.find("mate") != std::string::npos) {
|
||||
desktopEnv = "mate";
|
||||
gtk_init(0, 0);
|
||||
} else if (desktop.find("xfce") != std::string::npos) {
|
||||
desktopEnv = "xfce";
|
||||
gtk_init(0, 0);
|
||||
} else if (desktop.find("kde") != std::string::npos) {
|
||||
desktopEnv = "kde";
|
||||
} else if (desktop.find("lxde") != std::string::npos) {
|
||||
desktopEnv = "lxde";
|
||||
} else if (desktop.find("deepin") != std::string::npos) {
|
||||
desktopEnv = "deepin";
|
||||
char const* xdg_current_desktop = getenv("XDG_CURRENT_DESKTOP");
|
||||
if (xdg_current_desktop == NULL) {
|
||||
desktopEnv = "nope";
|
||||
} else {
|
||||
std::string desktop(xdg_current_desktop);
|
||||
std::transform(desktop.begin(), desktop.end(), desktop.begin(), ::tolower);
|
||||
if (desktop.find("cinnamon") != std::string::npos) {
|
||||
desktopEnv = "cinnamon";
|
||||
gtk_init(0, 0);
|
||||
} else if (
|
||||
desktop.find("gnome") != std::string::npos ||
|
||||
desktop.find("unity") != std::string::npos
|
||||
) {
|
||||
desktopEnv = "gnome";
|
||||
gtk_init(0, 0);
|
||||
} else if (desktop.find("mate") != std::string::npos) {
|
||||
desktopEnv = "mate";
|
||||
gtk_init(0, 0);
|
||||
} else if (desktop.find("xfce") != std::string::npos) {
|
||||
desktopEnv = "xfce";
|
||||
gtk_init(0, 0);
|
||||
} else if (desktop.find("kde") != std::string::npos) {
|
||||
desktopEnv = "kde";
|
||||
} else if (desktop.find("lxde") != std::string::npos) {
|
||||
desktopEnv = "lxde";
|
||||
} else if (desktop.find("deepin") != std::string::npos) {
|
||||
desktopEnv = "deepin";
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue