From 37c26178be0e54dc42908b1cc5d7ec4802aff85b Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Mon, 15 Mar 2021 10:50:14 +0900 Subject: Fixed behavior of caps for non-alpha characters, which was broken in commit 1865767. Signed-off-by: Michele Calgaro (cherry picked from commit 48c1053fa1e5896a10e576b9eb35634fa789cff4) --- src/MainWidget.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/MainWidget.cpp') diff --git a/src/MainWidget.cpp b/src/MainWidget.cpp index 8797085..ff10c27 100644 --- a/src/MainWidget.cpp +++ b/src/MainWidget.cpp @@ -858,16 +858,17 @@ void MainWidget::updateNumlock() void MainWidget::toggleShift(unsigned int keycode) { send_key(keycode); - updateShift(); + updateShiftCaps(); } -void MainWidget::updateShift() +void MainWidget::updateShiftCaps() { - bool state = caps->isOn() ^ (lshift->isOn() || rshift->isOn()); + bool shiftState = lshift->isOn() || rshift->isOn(); + bool capsState = caps->isOn(); for (unsigned a = 0; a < btns.size(); a++) { VButton *v = btns[a]; - v->shiftPressed(state); + v->shiftCapsPressed(shiftState, capsState); } } @@ -880,7 +881,7 @@ void MainWidget::keyPress ( unsigned int a ) mod->setOn(false); } // Make sure the key labels are correctly updated - updateShift(); + updateShiftCaps(); } void MainWidget::send_key(unsigned int keycode) @@ -935,7 +936,7 @@ void MainWidget::queryModState() if (caps_state != caps->isOn()) { caps->setOn(caps_state); - updateShift(); + updateShiftCaps(); } bool numl_state = keyState(XK_Num_Lock); -- cgit v1.2.3