Adaptitions for kWin support on Flatpak

This commit is contained in:
WarmUpTill
2026-08-17 19:31:03 +02:00
parent e76df589e2
commit efee142b4b
2 changed files with 15 additions and 10 deletions

View File

@@ -630,14 +630,9 @@ int ignoreXerror(Display *d, XErrorEvent *e)
void PlatformInit()
{
auto display = disp();
if (!display) {
return;
}
KWin = isKWinAvailable();
if (!(KWin && startKWinScript(KWinScriptObjectPath) &&
registerKWinDBusListener(&notifier))) {
if (!(KWin && registerKWinDBusListener(&notifier) &&
startKWinScript(KWinScriptObjectPath))) {
// something bad happened while trying to initialize
// the KWin script/dbus so disable it
KWin = false;
@@ -646,9 +641,15 @@ void PlatformInit()
blog(LOG_INFO, "using KWin compat");
}
initXss();
initProcps();
initProc2();
auto display = disp();
if (!display) {
return;
}
initXss();
XSetErrorHandler(ignoreXerror);
}

View File

@@ -5,6 +5,7 @@
#include <QDir>
#include <QFile>
#include <QFileDevice>
#include <QStandardPaths>
#include <QTextStream>
#include <QtDBus/QDBusConnectionInterface>
#include <QtDBus/QDBusInterface>
@@ -97,7 +98,9 @@ bool isKWinAvailable()
bool startKWinScript(QString &scriptObjectPath)
{
const QString scriptPath =
"/tmp/AdvancedSceneSwitcher/KWinFocusNotifier.js";
QStandardPaths::writableLocation(
QStandardPaths::RuntimeLocation) +
"/AdvancedSceneSwitcher/KWinFocusNotifier.js";
const QString script =
R"(var adss = "com.github.AdvancedSceneSwitcher";
@@ -129,7 +132,8 @@ workspace.windowActivated.connect(function(client) {
}))";
if (const QDir dir; !dir.mkpath(QFileInfo(scriptPath).absolutePath())) {
blog(LOG_ERROR, "error creating /tmp/AdvancedSceneSwitcher");
blog(LOG_ERROR,
"error creating KWinFocusNotifier script directory");
return false;
}