Files
sloposk/tests/tst_visibility.cpp
T
ericek111andClaude Opus 5.5 b745e9da1b Follow Plasma's virtual keyboard setting
KWin activates the input method for every text field; its policy (the
tray toggle) only gates the input panel, which sloposk doesn't use. sloposk
now asks KWin over D-Bus whether a focused field should show the
keyboard: never when off, only after touch or a pen by default.
"Always Show" and D-Bus Show/Toggle still show it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:31:13 +01:00

83 lines
1.9 KiB
C++

#include "window/VisibilityController.h"
#include <QTest>
class TestVisibility : public QObject
{
Q_OBJECT
private Q_SLOTS:
void followsFieldFocus()
{
VisibilityController v;
v.setFieldActive(true);
QVERIFY(v.isVisible());
v.setFieldActive(false);
QVERIFY(!v.isVisible());
}
void fieldShowsOnlyWhenTheSystemWantsIt()
{
VisibilityController v;
v.setShowOnField(false);
v.setFieldActive(true);
QVERIFY(!v.isVisible());
v.show(); // explicit requests still work
QVERIFY(v.isVisible());
v.setShowOnField(true);
v.setFieldActive(true);
QVERIFY(v.isVisible());
}
void dismissLastsUntilFocusChanges()
{
VisibilityController v;
v.setFieldActive(true);
v.hide();
QVERIFY(!v.isVisible());
v.setFieldActive(false);
v.setFieldActive(true);
QVERIFY(v.isVisible());
}
void dismissEndsWhenAnotherFieldIsFocused()
{
VisibilityController v;
v.setFieldActive(true);
v.hide();
v.setFieldActive(true); // activated straight from one field to the next
QVERIFY(v.isVisible());
}
void alwaysVisibleShowsWithoutField()
{
VisibilityController v;
v.setAlwaysVisible(true);
QVERIFY(v.isVisible());
v.hide(); // dismiss key still works...
QVERIFY(!v.isVisible());
v.setFieldActive(true); // ...until the focus changes
v.setFieldActive(false);
QVERIFY(v.isVisible());
}
void toggleShowsWithoutField()
{
VisibilityController v;
v.toggle();
QVERIFY(v.isVisible());
v.toggle();
QVERIFY(!v.isVisible());
}
void standaloneAlwaysVisible()
{
VisibilityController v;
v.setStandalone(true);
QVERIFY(v.isVisible());
}
};
QTEST_GUILESS_MAIN(TestVisibility)
#include "tst_visibility.moc"