Warning, file /frameworks/kwindowsystem/autotests/compositingenabled_test.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2016 Martin Gräßlin <mgraesslin@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.1-or-later 0005 */ 0006 #include <KWindowSystem> 0007 #include <QSignalSpy> 0008 #include <QTest> 0009 #include <kmanagerselection.h> 0010 0011 #include "kx11extras.h" 0012 0013 class CompositingEnabledTest : public QObject 0014 { 0015 Q_OBJECT 0016 private Q_SLOTS: 0017 void testRecreatingNetEventFilter(); 0018 }; 0019 0020 void CompositingEnabledTest::testRecreatingNetEventFilter() 0021 { 0022 // this test simulates the condition that the compositor gets enabled while the NetEventFilter gets recreated 0023 QVERIFY(!KX11Extras::compositingActive()); 0024 0025 // fake the compositor 0026 QSignalSpy compositingChangedSpy(KX11Extras::self(), &KX11Extras::compositingChanged); 0027 QVERIFY(compositingChangedSpy.isValid()); 0028 KSelectionOwner compositorSelection("_NET_WM_CM_S0"); 0029 QSignalSpy claimedSpy(&compositorSelection, &KSelectionOwner::claimedOwnership); 0030 QVERIFY(claimedSpy.isValid()); 0031 compositorSelection.claim(true); 0032 connect(&compositorSelection, &KSelectionOwner::claimedOwnership, [] { 0033 // let's connect to a signal which will cause a re-creation of NetEventFilter 0034 QSignalSpy workAreaChangedSpy(KX11Extras::self(), &KX11Extras::workAreaChanged); 0035 QVERIFY(workAreaChangedSpy.isValid()); 0036 }); 0037 0038 QVERIFY(claimedSpy.wait()); 0039 QTRY_VERIFY(KX11Extras::compositingActive()); 0040 QCOMPARE(compositingChangedSpy.count(), 1); 0041 } 0042 0043 QTEST_MAIN(CompositingEnabledTest) 0044 #include "compositingenabled_test.moc"