summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/windows/qwindowsinputcontext.h
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@digia.com>2014-07-30 15:13:41 +0200
committerFriedemann Kleint <Friedemann.Kleint@digia.com>2014-08-04 17:13:36 +0200
commit501fe9f9395eedc8294f5098466a322b32d13ea4 (patch)
treed37af1da079c7507012f3cdeb125ff93e9b89d41 /src/plugins/platforms/windows/qwindowsinputcontext.h
parent219c2eb4e28dd1c806cbc2115ff40454d6d3f9c5 (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.h5
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();