diff options
author | David Edmundson <davidedmundson@kde.org> | 2023-07-11 13:13:47 +0100 |
---|---|---|
committer | Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> | 2023-12-13 07:29:51 +0000 |
commit | 59ae054ded4d74db53281d8087576cd05b979cd9 (patch) | |
tree | b5ceca08b455770e7c359541fd7807fe2ae3838b /src/shared | |
parent | 9c9f66a73dae53937af3f756fdbecc715fd3bbbb (diff) |
Support TextInput V3 over v4-wip
Support for v4-wip was not added into any desktop linux compositors, nor
was it ever enabled into the default Qt client builds for clients or
compositor.
TextInputV3 has become the most widely deployed. Whilst changes are
needed, they do not need to be breaking changes. A second iteration of
V3 can add the features we need. This is now in motion upstream.
For cases where QtWaylandCompositor is used, the custom Qt text input
method is preferred to work with the Qt virtual keyboard.
Pick-to: 6.7
Change-Id: I01e2686c67846804c0069f1495952b530547f91c
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/qwaylandinputmethodeventbuilder.cpp | 50 | ||||
-rw-r--r-- | src/shared/qwaylandinputmethodeventbuilder_p.h | 2 |
2 files changed, 26 insertions, 26 deletions
diff --git a/src/shared/qwaylandinputmethodeventbuilder.cpp b/src/shared/qwaylandinputmethodeventbuilder.cpp index f0758bf70..0f07a6958 100644 --- a/src/shared/qwaylandinputmethodeventbuilder.cpp +++ b/src/shared/qwaylandinputmethodeventbuilder.cpp @@ -11,10 +11,10 @@ #ifdef QT_BUILD_WAYLANDCOMPOSITOR_LIB #include <QtWaylandCompositor/private/qwayland-server-text-input-unstable-v2.h> -#include <QtWaylandCompositor/private/qwayland-server-text-input-unstable-v4-wip.h> +#include <QtWaylandCompositor/private/qwayland-server-text-input-unstable-v3.h> #else #include <QtWaylandClient/private/qwayland-text-input-unstable-v2.h> -#include <QtWaylandClient/private/qwayland-text-input-unstable-v4-wip.h> +#include <QtWaylandClient/private/qwayland-text-input-unstable-v3.h> #endif QT_BEGIN_NAMESPACE @@ -218,55 +218,55 @@ QWaylandInputMethodContentType QWaylandInputMethodContentType::convert(Qt::Input return QWaylandInputMethodContentType{hint, purpose}; } -QWaylandInputMethodContentType QWaylandInputMethodContentType::convertV4(Qt::InputMethodHints hints) +QWaylandInputMethodContentType QWaylandInputMethodContentType::convertV3(Qt::InputMethodHints hints) { - uint32_t hint = ZWP_TEXT_INPUT_V4_CONTENT_HINT_NONE; - uint32_t purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_NORMAL; + uint32_t hint = ZWP_TEXT_INPUT_V3_CONTENT_HINT_NONE; + uint32_t purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NORMAL; if (hints & Qt::ImhHiddenText) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_HIDDEN_TEXT; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_HIDDEN_TEXT; if (hints & Qt::ImhSensitiveData) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_SENSITIVE_DATA; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_SENSITIVE_DATA; if ((hints & Qt::ImhNoAutoUppercase) == 0) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_AUTO_CAPITALIZATION; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_AUTO_CAPITALIZATION; if (hints & Qt::ImhPreferNumbers) { // Nothing yet } if (hints & Qt::ImhPreferUppercase) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_UPPERCASE; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_UPPERCASE; if (hints & Qt::ImhPreferLowercase) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_LOWERCASE; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_LOWERCASE; if ((hints & Qt::ImhNoPredictiveText) == 0) { - hint |= (ZWP_TEXT_INPUT_V4_CONTENT_HINT_COMPLETION - | ZWP_TEXT_INPUT_V4_CONTENT_HINT_SPELLCHECK); + hint |= (ZWP_TEXT_INPUT_V3_CONTENT_HINT_COMPLETION + | ZWP_TEXT_INPUT_V3_CONTENT_HINT_SPELLCHECK); } if ((hints & Qt::ImhDate) && (hints & Qt::ImhTime) == 0) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_DATE; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATE; else if ((hints & Qt::ImhDate) && (hints & Qt::ImhTime)) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_DATETIME; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DATETIME; else if ((hints & Qt::ImhDate) == 0 && (hints & Qt::ImhTime)) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_TIME; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_TIME; if (hints & Qt::ImhPreferLatin) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_LATIN; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_LATIN; if (hints & Qt::ImhMultiLine) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_MULTILINE; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_MULTILINE; if (hints & Qt::ImhDigitsOnly) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_DIGITS; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_DIGITS; if (hints & Qt::ImhFormattedNumbersOnly) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_NUMBER; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_NUMBER; if (hints & Qt::ImhUppercaseOnly) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_UPPERCASE; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_UPPERCASE; if (hints & Qt::ImhLowercaseOnly) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_LOWERCASE; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_LOWERCASE; if (hints & Qt::ImhDialableCharactersOnly) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_PHONE; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_PHONE; if (hints & Qt::ImhEmailCharactersOnly) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_EMAIL; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_EMAIL; if (hints & Qt::ImhUrlCharactersOnly) - purpose = ZWP_TEXT_INPUT_V4_CONTENT_PURPOSE_URL; + purpose = ZWP_TEXT_INPUT_V3_CONTENT_PURPOSE_URL; if (hints & Qt::ImhLatinOnly) - hint |= ZWP_TEXT_INPUT_V4_CONTENT_HINT_LATIN; + hint |= ZWP_TEXT_INPUT_V3_CONTENT_HINT_LATIN; return QWaylandInputMethodContentType{hint, purpose}; } diff --git a/src/shared/qwaylandinputmethodeventbuilder_p.h b/src/shared/qwaylandinputmethodeventbuilder_p.h index 1ccfa11a2..6926dac56 100644 --- a/src/shared/qwaylandinputmethodeventbuilder_p.h +++ b/src/shared/qwaylandinputmethodeventbuilder_p.h @@ -47,7 +47,7 @@ struct QWaylandInputMethodContentType { uint32_t purpose = 0; static QWaylandInputMethodContentType convert(Qt::InputMethodHints hints); - static QWaylandInputMethodContentType convertV4(Qt::InputMethodHints hints); + static QWaylandInputMethodContentType convertV3(Qt::InputMethodHints hints); }; |