59 lines
1.6 KiB
Diff
59 lines
1.6 KiB
Diff
|
From b31f3e26477368af8213da7883391e475ff82ac2 Mon Sep 17 00:00:00 2001
|
||
|
From: Georges Basile Stavracas Neto <georges.stavracas@gmail.com>
|
||
|
Date: Wed, 19 Aug 2020 15:09:26 -0300
|
||
|
Subject: [PATCH 18/20] UI: Disable and ignore Always On Top on Wayland
|
||
|
platforms
|
||
|
|
||
|
This is a dangerous operation on Wayland, and is crashing not only
|
||
|
OBS Studio but also the whole compositor. Let's disable it for now
|
||
|
when running as a native Wayland client.
|
||
|
|
||
|
Some compositors (GNOME Shell, Plasma) still allow setting this
|
||
|
option on the window menu.
|
||
|
---
|
||
|
UI/window-basic-main.cpp | 19 ++++++++++++++++++-
|
||
|
1 file changed, 18 insertions(+), 1 deletion(-)
|
||
|
|
||
|
diff --git a/UI/window-basic-main.cpp b/UI/window-basic-main.cpp
|
||
|
index 09304eb1..653ad93a 100644
|
||
|
--- a/UI/window-basic-main.cpp
|
||
|
+++ b/UI/window-basic-main.cpp
|
||
|
@@ -75,6 +75,10 @@
|
||
|
|
||
|
#include <json11.hpp>
|
||
|
|
||
|
+#ifdef ENABLE_WAYLAND
|
||
|
+#include <obs-nix-platform.h>
|
||
|
+#endif
|
||
|
+
|
||
|
using namespace json11;
|
||
|
using namespace std;
|
||
|
|
||
|
@@ -1713,9 +1717,22 @@ void OBSBasic::OBSInit()
|
||
|
|
||
|
bool alwaysOnTop = config_get_bool(App()->GlobalConfig(), "BasicWindow",
|
||
|
"AlwaysOnTop");
|
||
|
- if (alwaysOnTop || opt_always_on_top) {
|
||
|
+
|
||
|
+#ifdef ENABLE_WAYLAND
|
||
|
+ bool isWayland = obs_get_nix_platform() == OBS_NIX_PLATFORM_WAYLAND;
|
||
|
+#else
|
||
|
+ bool isWayland = false;
|
||
|
+#endif
|
||
|
+
|
||
|
+ if (!isWayland && (alwaysOnTop || opt_always_on_top)) {
|
||
|
SetAlwaysOnTop(this, true);
|
||
|
ui->actionAlwaysOnTop->setChecked(true);
|
||
|
+ } else if (isWayland) {
|
||
|
+ if (opt_always_on_top)
|
||
|
+ blog(LOG_INFO,
|
||
|
+ "Always On Top not available on Wayland, ignoring…");
|
||
|
+ ui->actionAlwaysOnTop->setEnabled(false);
|
||
|
+ ui->actionAlwaysOnTop->setVisible(false);
|
||
|
}
|
||
|
|
||
|
#ifndef _WIN32
|
||
|
--
|
||
|
2.28.0
|
||
|
|