Fix double-space period, shift double-tap; settings; letters from system keymap
- Double-space replaced the space via a Backspace keysym, which clients apply after the commit: use delete_surrounding_text with the commit - Tests use a shared FakeEngine that applies ops to a simulated field - Double-tap shift locks at a sentence start; typing between taps doesn't - Organization name set: config lives in ~/.config/sloposk/ - Settings (auto-capitalization, double-space period) with a ⚙ panel - Letter rows come from the compositor's XKB keymap; other letters of the layout become long-press alternates; globe switches the system layout over org.kde.keyboard - One JSON template for non-letter layers; stretch keys even out rows Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -32,6 +32,37 @@ private Q_SLOTS:
|
||||
QCOMPARE(shift.mode(), Mode::Locked);
|
||||
}
|
||||
|
||||
void doubleTapLocksAfterAutomaticShift()
|
||||
{
|
||||
ShiftState shift;
|
||||
shift.setAutomatic(true);
|
||||
shift.press(0); // turns auto-shift off...
|
||||
shift.release();
|
||||
shift.press(200); // ...and the second tap locks
|
||||
shift.release();
|
||||
QCOMPARE(shift.mode(), Mode::Locked);
|
||||
}
|
||||
|
||||
void tapAfterUnlockIsNotDoubleTap()
|
||||
{
|
||||
ShiftState shift;
|
||||
shift.press(0);
|
||||
shift.press(100); // locked
|
||||
shift.press(1000); // unlocks
|
||||
shift.press(1100);
|
||||
QCOMPARE(shift.mode(), Mode::Once);
|
||||
}
|
||||
|
||||
void typingBetweenTapsIsNotDoubleTap()
|
||||
{
|
||||
ShiftState shift;
|
||||
shift.press(0);
|
||||
shift.release();
|
||||
shift.characterTyped();
|
||||
shift.press(200);
|
||||
QCOMPARE(shift.mode(), Mode::Once);
|
||||
}
|
||||
|
||||
void tapUnlocks()
|
||||
{
|
||||
ShiftState shift;
|
||||
|
||||
Reference in New Issue
Block a user