diff options
author | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-07-30 15:13:41 +0200 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@digia.com> | 2014-08-04 17:13:36 +0200 |
commit | 501fe9f9395eedc8294f5098466a322b32d13ea4 (patch) | |
tree | d37af1da079c7507012f3cdeb125ff93e9b89d41 /src/plugins/platforms/windows/qwindowsinputcontext.h | |
parent | 219c2eb4e28dd1c806cbc2115ff40454d6d3f9c5 (diff) |
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 <liang.qi@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Diffstat (limited to 'src/plugins/platforms/windows/qwindowsinputcontext.h')
-rw-r--r-- | src/plugins/platforms/windows/qwindowsinputcontext.h | 5 |
1 files changed, 4 insertions, 1 deletions
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 <QtCore/QPointer> #include <qpa/qplatforminputcontext.h> QT_BEGIN_NAMESPACE @@ -63,6 +64,7 @@ class QWindowsInputContext : public QPlatformInputContext QString composition; int position; bool isComposing; + QPointer<QObject> 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(); |