Invoke the reinit Compositor signal when the advanced options changed

Therefore we track whether the options got changed and if they did
we emit the reinit signal once the configuration is saved.
remotes/origin/Plasma/5.0
Martin Gräßlin 12 years ago
parent 450888df50
commit 6006a91e8a
  1. 16
      kcmkwin/kwincompositing/compositing.cpp
  2. 2
      kcmkwin/kwincompositing/compositing.h
  3. 6
      kcmkwin/kwincompositing/main.cpp

@ -44,6 +44,7 @@ Compositing::Compositing(QObject *parent)
, m_glSwapStrategy(0)
, m_glColorCorrection(false)
, m_compositingType(0)
, m_changed(false)
{
reset();
connect(this, &Compositing::animationSpeedChanged, this, &Compositing::changed);
@ -54,6 +55,10 @@ Compositing::Compositing(QObject *parent)
connect(this, &Compositing::glSwapStrategyChanged, this, &Compositing::changed);
connect(this, &Compositing::glColorCorrectionChanged, this, &Compositing::changed);
connect(this, &Compositing::compositingTypeChanged, this, &Compositing::changed);
connect(this, &Compositing::changed, [this]{
m_changed = true;
});
}
void Compositing::reset()
@ -101,6 +106,7 @@ void Compositing::reset()
}
};
setCompositingType(type());
m_changed = false;
}
void Compositing::defaults()
@ -113,6 +119,7 @@ void Compositing::defaults()
setGlSwapStrategy(1);
setGlColorCorrection(false);
setCompositingType(CompositingType::OPENGL20_INDEX);
m_changed = true;
}
bool Compositing::OpenGLIsUnsafe() const
@ -308,6 +315,15 @@ void Compositing::save()
kwinConfig.writeEntry("GLLegacy", glLegacy);
kwinConfig.writeEntry("GLCore", glCore);
kwinConfig.sync();
if (m_changed) {
// Send signal to all kwin instances
QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/Compositor"),
QStringLiteral("org.kde.kwin.Compositing"),
QStringLiteral("reinit"));
QDBusConnection::sessionBus().asyncCall(message);
m_changed = false;
}
}
CompositingType::CompositingType(QObject *parent)

@ -89,6 +89,8 @@ private:
int m_glSwapStrategy;
bool m_glColorCorrection;
int m_compositingType;
bool m_changed;
};

@ -23,8 +23,6 @@
#include "model.h"
#include <QApplication>
#include <QDBusConnection>
#include <QDBusMessage>
#include <QLayout>
#include <kcmodule.h>
@ -75,10 +73,6 @@ void KWinCompositingKCM::save()
{
m_view->save();
KCModule::save();
// Send signal to all kwin instances
// TODO: handle reinitCompositing case and send to compositor
QDBusMessage message = QDBusMessage::createSignal("/KWin", "org.kde.KWin", "reloadConfig");
QDBusConnection::sessionBus().send(message);
}
void KWinCompositingKCM::load()

Loading…
Cancel
Save