diff options
author | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-03-06 10:36:43 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@theqtcompany.com> | 2015-03-14 02:14:00 +0000 |
commit | 048918d4bd73886e1a8999a06b7af2cd2ddbe5f2 (patch) | |
tree | b41dc86f2f6fa3ff3fcc83361de272271835f5d4 /src/platformsupport/eglconvenience/qeglplatformcursor.cpp | |
parent | f5edf2b6fb20722bb63c8855793bc2552721748c (diff) |
eglfs: Generate enter and leave events
In addition the logic in QGuiApplication that picks the target window for input
events with a null window has to be enhanced to be compatible with how real windowing
systems work: mouse events following a press are delivered to the same window until the
release, even if the cursor has left the original target window.
Task-number: QTBUG-44814
Change-Id: I3fea84ac77a5ccebeae5def64f92d8d2e03d13ff
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Diffstat (limited to 'src/platformsupport/eglconvenience/qeglplatformcursor.cpp')
-rw-r--r-- | src/platformsupport/eglconvenience/qeglplatformcursor.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/platformsupport/eglconvenience/qeglplatformcursor.cpp b/src/platformsupport/eglconvenience/qeglplatformcursor.cpp index bf23d52465..5023efbaf6 100644 --- a/src/platformsupport/eglconvenience/qeglplatformcursor.cpp +++ b/src/platformsupport/eglconvenience/qeglplatformcursor.cpp @@ -43,6 +43,7 @@ #include "qeglplatformcursor_p.h" #include "qeglplatformintegration_p.h" +#include "qeglplatformscreen_p.h" QT_BEGIN_NAMESPACE @@ -56,7 +57,7 @@ QT_BEGIN_NAMESPACE QEGLPlatformCursor::QEGLPlatformCursor(QPlatformScreen *screen) : m_visible(true), - m_screen(screen), + m_screen(static_cast<QEGLPlatformScreen *>(screen)), m_program(0), m_vertexCoordEntry(0), m_textureCoordEntry(0), @@ -300,6 +301,7 @@ void QEGLPlatformCursor::setPos(const QPoint &pos) const QRect oldCursorRect = cursorRect(); m_cursor.pos = pos; update(oldCursorRect | cursorRect()); + m_screen->handleCursorMove(m_cursor.pos); } void QEGLPlatformCursor::pointerEvent(const QMouseEvent &event) @@ -309,6 +311,7 @@ void QEGLPlatformCursor::pointerEvent(const QMouseEvent &event) const QRect oldCursorRect = cursorRect(); m_cursor.pos = event.screenPos().toPoint(); update(oldCursorRect | cursorRect()); + m_screen->handleCursorMove(m_cursor.pos); } void QEGLPlatformCursor::paintOnScreen() |