Merge pull request #102104 from Hilderin/fix-embedded-game-disappear-when-not-focused

Fix Embedded Game disappear when not focused on KDE 5
This commit is contained in:
Thaddeus Crews 2025-02-05 10:27:38 -06:00
commit a63a8b430b
No known key found for this signature in database
GPG Key ID: 62181B86FE9E5D84
2 changed files with 3 additions and 1 deletions

View File

@ -6276,7 +6276,7 @@ DisplayServerX11::WindowID DisplayServerX11::_create_window(WindowMode p_mode, V
}
}
if (wd.is_popup || wd.no_focus || wd.embed_parent) {
if (wd.is_popup || wd.no_focus || (wd.embed_parent && !kde5_embed_workaround)) {
// Set Utility type to disable fade animations.
Atom type_atom = XInternAtom(x11_display, "_NET_WM_WINDOW_TYPE_UTILITY", False);
Atom wt_atom = XInternAtom(x11_display, "_NET_WM_WINDOW_TYPE", False);
@ -6422,6 +6422,7 @@ DisplayServerX11::DisplayServerX11(const String &p_rendering_driver, WindowMode
KeyMappingX11::initialize();
xwayland = OS::get_singleton()->get_environment("XDG_SESSION_TYPE").to_lower() == "wayland";
kde5_embed_workaround = OS::get_singleton()->get_environment("XDG_CURRENT_DESKTOP").to_lower() == "kde" && OS::get_singleton()->get_environment("KDE_SESSION_VERSION") == "5";
native_menu = memnew(NativeMenu);
context = p_context;

View File

@ -338,6 +338,7 @@ class DisplayServerX11 : public DisplayServer {
bool xinerama_ext_ok = true;
bool xshaped_ext_ok = true;
bool xwayland = false;
bool kde5_embed_workaround = false; // Workaround embedded game visibility on KDE 5 (GH-102043).
struct Property {
unsigned char *data;