From 480f857d2942fb9808e7a653aa54b2b44d1efc8d Mon Sep 17 00:00:00 2001 From: Xaver Hugl Date: Wed, 21 Jun 2023 10:24:03 +0200 Subject: [PATCH] outputconfigurationstore: don't handle laptop lid closing yet Interactions with KScreen cause settings to be reset to the default when the lid gets closed, so handling lid closing in KWin needs to wait until KScreen no longer writes configs BUG: 471282 --- autotests/integration/outputchanges_test.cpp | 1 + src/outputconfigurationstore.cpp | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/autotests/integration/outputchanges_test.cpp b/autotests/integration/outputchanges_test.cpp index 9437182d7a..4aaf9b8bce 100644 --- a/autotests/integration/outputchanges_test.cpp +++ b/autotests/integration/outputchanges_test.cpp @@ -597,6 +597,7 @@ void OutputChangesTest::testMaximizeStateRestoredAfterEnablingOutput() void OutputChangesTest::testLaptopLidClosed() { + QSKIP("Laptop lid handling is disabled until config writing is moved into KWin"); Test::setOutputConfig({ Test::OutputInfo{ .geometry = QRect(0, 0, 1280, 1024), diff --git a/src/outputconfigurationstore.cpp b/src/outputconfigurationstore.cpp index b9d60b940a..213b249177 100644 --- a/src/outputconfigurationstore.cpp +++ b/src/outputconfigurationstore.cpp @@ -21,6 +21,10 @@ namespace KWin std::pair> OutputConfigurationStore::queryConfig(const QVector &outputs, bool isLidClosed) { + // TODO to make use of isLidClosed, move config writing into KWin + // Currently, the interactions of KWin's config generation on lid close with KScreen's config writing + // causes settings changes that shouldn't be happening + isLidClosed = false; const auto kscreenConfig = KScreenIntegration::readOutputConfig(outputs, KScreenIntegration::connectedOutputsHash(outputs, isLidClosed)); if (kscreenConfig) { return kscreenConfig.value();