Restore convergence mode after undocking

Track docked state transitions in KScreenOSDProvider and only snapshot the initial convergence mode when transitioning into docked mode. This restores the previous user preference when outputs drop back to one.
This commit is contained in:
Marco Allegretti 2026-05-04 08:43:04 +02:00
parent 9f7e1677eb
commit 709304c99c

View file

@ -16,22 +16,22 @@ QtObject {
id: component
property bool initialConvergenceMode: false
property bool wasDocked: false
property var apiListener: Connections {
target: KScreenOSDUtil
function onOutputsChanged() {
if (KScreenOSDUtil.outputs > 1) {
const docked = KScreenOSDUtil.outputs > 1;
if (docked && !wasDocked) {
initialConvergenceMode = ShellSettings.Settings.convergenceModeEnabled;
}
- console.log("KScreenOSDProvider convergenceModeEnabled: "
- + (KScreenOSDUtil.outputs > 1 ? "true" : (initialConvergenceMode ? "TRUE" : "FALSE")));
ShellSettings.Settings.convergenceModeEnabled = KScreenOSDUtil.outputs > 1 ? true : initialConvergenceMode;
ShellSettings.Settings.convergenceModeEnabled = docked ? true : initialConvergenceMode;
wasDocked = docked;
}
}
Component.onCompleted: {
if (KScreenOSDUtil.outputs < 2) {
wasDocked = KScreenOSDUtil.outputs > 1;
initialConvergenceMode = ShellSettings.Settings.convergenceModeEnabled;
}
}
}