diff options
author | Ray-V <[email protected]> | 2021-03-22 12:56:28 +0900 |
---|---|---|
committer | Michele Calgaro <[email protected]> | 2021-03-23 10:22:44 +0900 |
commit | 630dc679f1db5b25e669e97d2bc9fd4b3237cefd (patch) | |
tree | 9166cff07a70ce3e659a4d967e7aff5799bab6c4 /src/VButton.cpp | |
parent | 28baf245947905f9c54c55806bf73bf6fce4295a (diff) | |
download | kvkbd-630dc679f1db5b25e669e97d2bc9fd4b3237cefd.tar.gz kvkbd-630dc679f1db5b25e669e97d2bc9fd4b3237cefd.zip |
Fixed algorithm for CAPS text key visualization.
Signed-off-by: Ray-V <[email protected]>
Signed-off-by: Michele Calgaro <[email protected]>
(cherry picked from commit b1c1fd93a72134d2e450301926d0121a8f73529b)
Diffstat (limited to 'src/VButton.cpp')
-rw-r--r-- | src/VButton.cpp | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/src/VButton.cpp b/src/VButton.cpp index e44feba..41871cd 100644 --- a/src/VButton.cpp +++ b/src/VButton.cpp @@ -26,13 +26,21 @@ void VButton::shiftCapsPressed(bool shift, bool caps) if (isAlpha) { // Alpha button, both shift and caps affect its state - if (shift ^ caps) + if (caps && shift) + { + TQPushButton::setText(capsShiftText); + } + else if (caps) + { + TQPushButton::setText(capsText); + } + else if (shift) { TQPushButton::setText(shiftText); } else { - TQPushButton::setText(lowerText); + TQPushButton::setText(normalText); } } else @@ -44,7 +52,7 @@ void VButton::shiftCapsPressed(bool shift, bool caps) } else { - TQPushButton::setText(lowerText); + TQPushButton::setText(normalText); } } } @@ -54,13 +62,25 @@ void VButton::setText(const TQString& text) // Need to set the pushbutton text to correctly handle those buttons which usually // don't change (tab, shift, caps, Fn, ...) TQPushButton::setText(text); - lowerText = text; - isAlpha = text.length() == 1 && (text.upper() != text); + normalText = text; + capsText = text.upper(); + isAlpha = text.length() == 1 && capsText != normalText; } void VButton::setShiftText(const TQString& text) { - shiftText=text; + shiftText = text; + // 'text' is normally uppercase here, so in most cases we need to set capsShiftText + // to text.lower() to handle caps+shift correctly. Special cases like ç and Ç are + // handled by using text.upper() + if (text.lower() != text) + { + capsShiftText = text.lower(); + } + else + { + capsShiftText = text.upper(); + } } void VButton::setColor(const TQColor &color) |