diff --git a/kded/daemon.cpp b/kded/daemon.cpp --- a/kded/daemon.cpp +++ b/kded/daemon.cpp @@ -173,15 +173,17 @@ qCDebug(KSCREEN_KDED) << "Do set and apply specific config"; auto configWrapper = std::unique_ptr(new Config(config)); configWrapper->setValidityFlags(KScreen::Config::ValidityFlag::RequireAtLeastOneEnabledScreen); - configWrapper->activateControlWatching(); + doApplyConfig(std::move(configWrapper)); } void KScreenDaemon::doApplyConfig(std::unique_ptr config) { m_monitoredConfig = std::move(config); + m_monitoredConfig->activateControlWatching(); m_orientationSensor->setEnabled(m_monitoredConfig->autoRotationRequested()); + connect(m_monitoredConfig.get(), &Config::controlChanged, this, [this]() { m_orientationSensor->setEnabled(m_monitoredConfig->autoRotationRequested()); updateOrientation();