From a8f454636d0c02da0af573861dff172ca70e9834 Mon Sep 17 00:00:00 2001 From: ou-yingwen Date: Fri, 29 May 2026 22:04:08 +0800 Subject: [PATCH] fix(display): correct assignment operator to comparison in outputPtr check In Widget::slotOutputConnectedChanged and a similar code block, 'if (mOutput->outputPtr() = output)' mistakenly used assignment (=) instead of comparison (==). This caused the condition to be evaluated based on the assigned pointer's nullity rather than checking pointer equality, breaking the intended signal disconnect/connect logic for QMLOutput matching. Changed both occurrences to use '==' for proper pointer comparison. --- plugins/system/display/widget.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/system/display/widget.cpp b/plugins/system/display/widget.cpp index 107a35c6d..bb24924db 100644 --- a/plugins/system/display/widget.cpp +++ b/plugins/system/display/widget.cpp @@ -213,7 +213,7 @@ void Widget::setConfig(const KScreen::ConfigPtr &config) connect(output.data(), &KScreen::Output::isEnabledChanged, this, &Widget::slotOutputEnabledChanged); for (QMLOutput *mOutput: mScreen->outputs()) { - if (mOutput->outputPtr() = output) { + if (mOutput->outputPtr() == output) { disconnect(mOutput, SIGNAL(clicked()), this, SLOT(mOutputClicked())); //避免多次连接 connect(mOutput, SIGNAL(clicked()), @@ -1197,7 +1197,7 @@ void Widget::outputAdded(const KScreen::OutputPtr &output, bool connectChanged) connect(output.data(), &KScreen::Output::isEnabledChanged, this, &Widget::slotOutputEnabledChanged); for (QMLOutput *mOutput: mScreen->outputs()) { - if (mOutput->outputPtr() = output) { + if (mOutput->outputPtr() == output) { disconnect(mOutput, SIGNAL(clicked()), this, SLOT(mOutputClicked())); //避免多次连接 connect(mOutput, SIGNAL(clicked()), -- Gitee