summaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorDavid Edmundson <davidedmundson@kde.org>2023-07-11 13:13:47 +0100
committerEskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>2023-12-13 07:29:51 +0000
commit59ae054ded4d74db53281d8087576cd05b979cd9 (patch)
treeb5ceca08b455770e7c359541fd7807fe2ae3838b /src/shared
parent9c9f66a73dae53937af3f756fdbecc715fd3bbbb (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.cpp50
-rw-r--r--src/shared/qwaylandinputmethodeventbuilder_p.h2
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);
};