summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@digia.com>2014-08-18 17:49:24 +0200
committerAndy Nichols <andy.nichols@digia.com>2014-08-25 16:47:18 +0200
commit6e7e73c014fe7799f22d8bac2d26360fab04c6d1 (patch)
tree8f3612d112f9780d661c4b20f42a511c6708fb94 /src/plugins/platforms/directfb
parent3fcebba79c34736109e5e3feb540adf8be1db525 (diff)
DirectFB Unbreak mouse input for child windows
The local and global coordinates for mouse events were being translated incorrectly from the native DirectFB events. Change-Id: Id904a4335459b87c92f4b8b46d535c78fb7dad8c Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Diffstat (limited to 'src/plugins/platforms/directfb')
-rw-r--r--src/plugins/platforms/directfb/qdirectfbinput.cpp15
-rw-r--r--src/plugins/platforms/directfb/qdirectfbinput.h1
2 files changed, 3 insertions, 13 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbinput.cpp b/src/plugins/platforms/directfb/qdirectfbinput.cpp
index 49dc45f04a..fd558b9974 100644
--- a/src/plugins/platforms/directfb/qdirectfbinput.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbinput.cpp
@@ -154,7 +154,7 @@ void QDirectFbInput::handleEvents()
void QDirectFbInput::handleMouseEvents(const DFBEvent &event)
{
QPoint p(event.window.x, event.window.y);
- QPoint globalPos = globalPoint(event);
+ QPoint globalPos(event.window.cx, event.window.cy);
Qt::MouseButtons buttons = QDirectFbConvenience::mouseButtons(event.window.buttons);
QDirectFBPointer<IDirectFBDisplayLayer> layer(QDirectFbConvenience::dfbDisplayLayer());
@@ -169,8 +169,8 @@ void QDirectFbInput::handleMouseEvents(const DFBEvent &event)
void QDirectFbInput::handleWheelEvent(const DFBEvent &event)
{
- QPoint p(event.window.cx, event.window.cy);
- QPoint globalPos = globalPoint(event);
+ QPoint p(event.window.x, event.window.y);
+ QPoint globalPos(event.window.cx, event.window.cy);
long timestamp = (event.window.timestamp.tv_sec*1000) + (event.window.timestamp.tv_usec/1000);
QWindow *tlw = m_tlwMap.value(event.window.window_id);
QWindowSystemInterface::handleWheelEvent(tlw, timestamp, p, globalPos,
@@ -227,13 +227,4 @@ void QDirectFbInput::handleGeometryEvent(const DFBEvent &event)
QWindowSystemInterface::handleGeometryChange(tlw, rect);
}
-inline QPoint QDirectFbInput::globalPoint(const DFBEvent &event) const
-{
- QDirectFBPointer<IDirectFBWindow> window;
- m_dfbDisplayLayer->GetWindow(m_dfbDisplayLayer, event.window.window_id, window.outPtr());
- int x,y;
- window->GetPosition(window.data(), &x, &y);
- return QPoint(event.window.cx +x, event.window.cy + y);
-}
-
QT_END_NAMESPACE
diff --git a/src/plugins/platforms/directfb/qdirectfbinput.h b/src/plugins/platforms/directfb/qdirectfbinput.h
index 0ce45823e1..0d775cdc79 100644
--- a/src/plugins/platforms/directfb/qdirectfbinput.h
+++ b/src/plugins/platforms/directfb/qdirectfbinput.h
@@ -75,7 +75,6 @@ private:
void handleGotFocusEvent(const DFBEvent &event);
void handleCloseEvent(const DFBEvent& event);
void handleGeometryEvent(const DFBEvent& event);
- inline QPoint globalPoint(const DFBEvent &event) const;
IDirectFB *m_dfbInterface;