diff --git qt5/style/qtcurve.cpp qt5/style/qtcurve.cpp
index ce15754..bba2c3d 100644
--- qt5/style/qtcurve.cpp
+++ qt5/style/qtcurve.cpp
*****************************************************************************/
-#include "qtcurve_plugin.h"
#include <qtcurve-utils/qtprops.h>
#include <QDBusConnection>
@@ -347,7 +346,7 @@ Style::Style() :
m_windowManager(new WindowManager(this)),
m_blurHelper(new BlurHelper(this)),
m_shortcutHandler(new ShortcutHandler(this)),
- m_dbusConnected(nullptr)
const char *env = getenv(QTCURVE_PREVIEW_CONFIG);
#ifdef QTC_QT5_ENABLE_KDE
@@ -666,9 +665,7 @@ void Style::connectDBus()
- m_dbusConnected = registerCleanup([] (void *data) {
- reinterpret_cast<Style*>(data)->disconnectDBus();
+ m_dbusConnected = true;
auto bus = QDBusConnection::sessionBus();
bus.connect(QString(), "/KGlobalSettings", "org.kde.KGlobalSettings",
"notifyChange", this, SLOT(kdeGlobalSettingsChange(int, int)));
@@ -695,23 +692,28 @@ void Style::disconnectDBus()
- void *cb = m_dbusConnected;
- m_dbusConnected = nullptr;
+ m_dbusConnected = false;
auto bus = QDBusConnection::sessionBus();
bus.disconnect(QString(), "/KGlobalSettings", "org.kde.KGlobalSettings",
this, SLOT(kdeGlobalSettingsChange(int, int)));
bus.disconnect("org.kde.kwin", "/KWin", "org.kde.KWin", "compositingToggled",
this, SLOT(compositingToggled()));
- bus.disconnect("org.kde.kwin", "/QtCurve", "org.kde.QtCurve",
- "borderSizesChanged", this, SLOT(borderSizesChanged()));
- bus.disconnect("org.kde.kwin", "/QtCurve", "org.kde.QtCurve",
- this, SLOT(toggleMenuBar(unsigned int)));
- bus.disconnect("org.kde.kwin", "/QtCurve", "org.kde.QtCurve",
- this, SLOT(toggleStatusBar(unsigned int)));
+ if (!qApp || qApp->arguments()[0] != "kwin") {
+ bus.disconnect("org.kde.kwin", "/QtCurve", "org.kde.QtCurve",
+ "borderSizesChanged", this, SLOT(borderSizesChanged()));
+ if (opts.menubarHiding & HIDE_KWIN)
+ bus.disconnect("org.kde.kwin", "/QtCurve", "org.kde.QtCurve",
+ this, SLOT(toggleMenuBar(unsigned int)));