summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/directfb/qdirectfbinput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/directfb/qdirectfbinput.cpp')
-rw-r--r--src/plugins/platforms/directfb/qdirectfbinput.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/plugins/platforms/directfb/qdirectfbinput.cpp b/src/plugins/platforms/directfb/qdirectfbinput.cpp
index d980f5453a..662493ff20 100644
--- a/src/plugins/platforms/directfb/qdirectfbinput.cpp
+++ b/src/plugins/platforms/directfb/qdirectfbinput.cpp
@@ -131,6 +131,16 @@ void QDirectFbInput::handleEvents()
case DWET_ENTER:
case DWET_LEAVE:
handleEnterLeaveEvents(event);
+ break;
+ case DWET_GOTFOCUS:
+ handleGotFocusEvent(event);
+ break;
+ case DWET_CLOSE:
+ handleCloseEvent(event);
+ break;
+ case DWET_POSITION_SIZE:
+ handleGeometryEvent(event);
+ break;
default:
break;
}
@@ -198,6 +208,25 @@ void QDirectFbInput::handleEnterLeaveEvents(const DFBEvent &event)
}
}
+void QDirectFbInput::handleGotFocusEvent(const DFBEvent &event)
+{
+ QWindow *tlw = m_tlwMap.value(event.window.window_id);
+ QWindowSystemInterface::handleWindowActivated(tlw);
+}
+
+void QDirectFbInput::handleCloseEvent(const DFBEvent &event)
+{
+ QWindow *tlw = m_tlwMap.value(event.window.window_id);
+ QWindowSystemInterface::handleCloseEvent(tlw);
+}
+
+void QDirectFbInput::handleGeometryEvent(const DFBEvent &event)
+{
+ QWindow *tlw = m_tlwMap.value(event.window.window_id);
+ QRect rect(event.window.x, event.window.y, event.window.w, event.window.h);
+ QWindowSystemInterface::handleGeometryChange(tlw, rect);
+}
+
inline QPoint QDirectFbInput::globalPoint(const DFBEvent &event) const
{
QDirectFBPointer<IDirectFBWindow> window;