From 501fe9f9395eedc8294f5098466a322b32d13ea4 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 30 Jul 2014 15:13:41 +0200 Subject: Implement focus change for Windows Input context. Keep track of the focus object in the input context ensuring that events on canceling are sent to the right object. Task-number: QTBUG-40402 Change-Id: I79820db94d97e21b47abc8fe2bae6fa012d31236 Reviewed-by: Liang Qi Reviewed-by: Friedemann Kleint --- src/plugins/platforms/windows/qwindowsinputcontext.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/plugins/platforms/windows/qwindowsinputcontext.h') diff --git a/src/plugins/platforms/windows/qwindowsinputcontext.h b/src/plugins/platforms/windows/qwindowsinputcontext.h index 51ea8adf1e..8ab684b837 100644 --- a/src/plugins/platforms/windows/qwindowsinputcontext.h +++ b/src/plugins/platforms/windows/qwindowsinputcontext.h @@ -44,6 +44,7 @@ #include "qtwindows_additional.h" +#include #include QT_BEGIN_NAMESPACE @@ -63,6 +64,7 @@ class QWindowsInputContext : public QPlatformInputContext QString composition; int position; bool isComposing; + QPointer focusObject; }; public: explicit QWindowsInputContext(); @@ -71,6 +73,7 @@ public: void reset() Q_DECL_OVERRIDE; void update(Qt::InputMethodQueries) Q_DECL_OVERRIDE; void invokeAction(QInputMethod::Action, int cursorPosition) Q_DECL_OVERRIDE; + void setFocusObject(QObject *object) Q_DECL_OVERRIDE; static QWindowsInputContext *instance(); @@ -86,7 +89,7 @@ private slots: void cursorRectChanged(); private: - void initContext(HWND hwnd); + void initContext(HWND hwnd, QObject *focusObject); void doneContext(); void startContextComposition(); void endContextComposition(); -- cgit v1.2.3