From 6c4a1914e01bde6191c64a306a47046c736e4e1c Mon Sep 17 00:00:00 2001 From: Allan Sandfeld Jensen Date: Fri, 15 Sep 2017 12:42:55 +0200 Subject: Hide ibus IM on password fields We haven't hooked on any of the properties to tell ibus IMs the type of field or that it should be hidden, so hide it like is standard. Change-Id: Iaa64c669f7162b60c16971ec962101b974108e65 Reviewed-by: Friedemann Kleint Reviewed-by: Peter Varga Reviewed-by: Liang Qi --- .../platforminputcontexts/ibus/qibusplatforminputcontext.cpp | 11 +++++++++++ .../platforminputcontexts/ibus/qibusplatforminputcontext.h | 1 + 2 files changed, 12 insertions(+) (limited to 'src/plugins/platforminputcontexts') diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp index 6df454adb0..9675d828e7 100644 --- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp +++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp @@ -136,6 +136,17 @@ bool QIBusPlatformInputContext::isValid() const return d->valid && d->busConnected; } +bool QIBusPlatformInputContext::hasCapability(Capability capability) const +{ + switch (capability) { + case QPlatformInputContext::HiddenTextCapability: + return false; // QTBUG-40691, do not show IME on desktop for password entry fields. + default: + break; + } + return true; +} + void QIBusPlatformInputContext::invokeAction(QInputMethod::Action a, int) { if (!d->busConnected) diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h index 94fa5c3d60..7baa9ad1da 100644 --- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h +++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h @@ -95,6 +95,7 @@ public: void update(Qt::InputMethodQueries) Q_DECL_OVERRIDE; bool filterEvent(const QEvent *event) Q_DECL_OVERRIDE; QLocale locale() const Q_DECL_OVERRIDE; + bool hasCapability(Capability capability) const Q_DECL_OVERRIDE; public Q_SLOTS: void commitText(const QDBusVariant &text); -- cgit v1.2.3