summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2025-03-10 15:03:54 -0400
committerGitHub <noreply@github.com>2025-03-10 15:03:54 -0400
commit3f73a39dbde20bf3e2f9dd6550d2f71e4b51f344 (patch)
tree3e435c4772f4144c61fb64c03d4a09a1bce10883
parent9f43f59c9bb8bef14304c31a74ead337216551e8 (diff)
parenta3b06b0572d7a16d8ede9c849e9f549a283123df (diff)
Merge pull request #13286 from JoshuaVandaele/xcb
Enforce XCB within code
-rw-r--r--Data/dolphin-emu.desktop2
-rw-r--r--Flatpak/org.DolphinEmu.dolphin-emu.yml4
-rw-r--r--Source/Core/DolphinQt/Main.cpp8
3 files changed, 9 insertions, 5 deletions
diff --git a/Data/dolphin-emu.desktop b/Data/dolphin-emu.desktop
index a998ce4370..f44fe202f2 100644
--- a/Data/dolphin-emu.desktop
+++ b/Data/dolphin-emu.desktop
@@ -1,7 +1,7 @@
[Desktop Entry]
Version=1.0
Icon=dolphin-emu
-Exec=env QT_QPA_PLATFORM=xcb dolphin-emu
+Exec=dolphin-emu
Terminal=false
Type=Application
Categories=Game;Emulator;
diff --git a/Flatpak/org.DolphinEmu.dolphin-emu.yml b/Flatpak/org.DolphinEmu.dolphin-emu.yml
index db42a3bd03..c1a649d49a 100644
--- a/Flatpak/org.DolphinEmu.dolphin-emu.yml
+++ b/Flatpak/org.DolphinEmu.dolphin-emu.yml
@@ -8,10 +8,6 @@ rename-icon: dolphin-emu
finish-args:
- --device=all
- --socket=pulseaudio
- # dolphin doesn't work on wayland (only the ui does), if a user were to set
- # this env variable globally to wayland then games wouldn't work.
- # we overwrite the setting and force xcb to prevent this from happening.
- - --env=QT_QPA_PLATFORM=xcb
- --socket=x11
- --share=network
- --share=ipc
diff --git a/Source/Core/DolphinQt/Main.cpp b/Source/Core/DolphinQt/Main.cpp
index 88400aa1a6..8baa6d7f08 100644
--- a/Source/Core/DolphinQt/Main.cpp
+++ b/Source/Core/DolphinQt/Main.cpp
@@ -148,6 +148,14 @@ int main(int argc, char* argv[])
#if (QT_VERSION >= QT_VERSION_CHECK(6, 3, 0))
setenv("QT_XCB_NO_XI2", "1", true);
#endif
+ // Dolphin currently doesn't work on Wayland (Only the UI does, games do not launch.) This makes
+ // XCB the default and forces it on if the platform is specified to be wayland, to prevent this
+ // from happening.
+ // For more information: https://bugs.dolphin-emu.org/issues/11807
+ const char* current_qt_platform = getenv("QT_QPA_PLATFORM");
+ const bool replace_qt_platform =
+ (current_qt_platform && strcasecmp(current_qt_platform, "wayland") == 0);
+ setenv("QT_QPA_PLATFORM", "xcb", replace_qt_platform);
#endif
QCoreApplication::setOrganizationName(QStringLiteral("Dolphin Emulator"));