summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforminputcontexts/ibus
diff options
context:
space:
mode:
authorJoona Petrell <joona.t.petrell@nokia.com>2011-10-11 13:10:50 +0300
committerQt by Nokia <qt-info@nokia.com>2011-10-11 16:03:25 +0200
commite941b37fcc715fc20d7365cae21cd657a215cf8f (patch)
tree4e7345c42f6605b112aa370f0df430b0f054ad7f /src/plugins/platforminputcontexts/ibus
parent0e6a4010286569c3c77ed3092dd96aca17e72332 (diff)
Move input panel visibility ownership from QInputPanel to QPlatformInputContext
Now QInputPanel::visible() can be set true even when platform doesn't provide a virtual keyboard. Like keyboard geometry, visibility should be dictated by the platform plugin and not QInputPanel, whose role is more like that of a mediator. QInputPanel::show() and ::hide() calls should be treated as requests that may fail. Changed the QInputPanel's visible property to read-only as a setter that may fail is not really a setter, show() and hide() should be used instead. Enabling the new functionality cannot be activated immediatelly without breaking existing keyboards, added a temporary function handlesInputPanelVisibility that handovers the responsiblity of updating input panel visibility to QInputContextPlatform only once QInputContextPlatform says that it is able to handle it. Change-Id: Ideecaf7225cc3971f33a0ac976bd92cf7767475b Reviewed-on: http://codereview.qt-project.org/6429 Sanity-Review: Qt Sanity Bot <qt_sanity_bot@ovi.com> Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Diffstat (limited to 'src/plugins/platforminputcontexts/ibus')
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp5
-rw-r--r--src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
index 0d0e240b37..67ee9da252 100644
--- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
+++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp
@@ -155,6 +155,11 @@ void QIBusPlatformInputContext::inputItemChanged()
d->context->FocusOut();
}
+// temporary function added to retain compatibility to old functionality, will be deprecated
+bool QIBusPlatformInputContext::handlesInputPanelVisibility() const
+{
+ return true;
+}
void QIBusPlatformInputContext::commitText(const QDBusVariant &text)
{
diff --git a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
index 6008fc31aa..303b6f7cc0 100644
--- a/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
+++ b/src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.h
@@ -63,6 +63,8 @@ public:
Q_INVOKABLE bool x11FilterEvent(uint keyval, uint keycode, uint state, bool press);
+ virtual bool handlesInputPanelVisibility() const;
+
public Q_SLOTS:
void commitText(const QDBusVariant &text);
void updatePreeditText(const QDBusVariant &text, uint cursor_pos, bool visible);