From 0cec50bece2dcd69127f19c87a3062e4b13f3723 Mon Sep 17 00:00:00 2001 From: Inho Lee Date: Sat, 19 Jun 2021 06:27:22 +0200 Subject: Support text-input-unstable-v4-wip This feature can be enabled by -feature-wayland-text-input-v4-wip. It is disabled by default. TextInputManagerV4 is available in a compositor. zwp_text_input_v4 is available for QT_WAYLAND_TEXT_INPUT_PROTOCOL in a client It supports Hangul(Korean) with a qtvirtualkeyboard patchset (refs/changes/02/357902/3) It includes some workarounds for ibus because each ibus module has its own policy for focus-in/focus-out. enter/leave will synchronize with enable/disable and they will happen whenever focus-in/focus-out happen. Cursor/anchor positions are byte offsets. Surrounding text will be trimmed when it is over 4000 byte. For debugging, uses "qt.waylandcompositor.textinput" in a compositor side uses "qt.qpa.wayland.textinput" in a client side Tested on qtvirtualkeyboard and ibus TODO : * QTBUG-97248 - event:preedit_commit_mode is not implemented yet. Current preedit_commit_mode is 'commit'. * request:set_text_change_cause is not implemented. Task-number: QTBUG-94327 Change-Id: I72644893f40f30c4b03cd6a7d05483d12bde1070 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/client/qwaylandinputcontext.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/client/qwaylandinputcontext.cpp') diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp index 9ac1c3df6..c59485277 100644 --- a/src/client/qwaylandinputcontext.cpp +++ b/src/client/qwaylandinputcontext.cpp @@ -70,7 +70,11 @@ QWaylandInputContext::~QWaylandInputContext() bool QWaylandInputContext::isValid() const { - return mDisplay->textInputManager() != nullptr; +#if QT_WAYLAND_TEXT_INPUT_V4_WIP + return mDisplay->textInputManagerv2() != nullptr || mDisplay->textInputManagerv4() != nullptr; +#else // QT_WAYLAND_TEXT_INPUT_V4_WIP + return mDisplay->textInputManagerv2() != nullptr; +#endif // QT_WAYLAND_TEXT_INPUT_V4_WIP } void QWaylandInputContext::reset() -- cgit v1.2.3