diff options
-rw-r--r-- | qgraphicssystem_dd.cpp | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/qgraphicssystem_dd.cpp b/qgraphicssystem_dd.cpp index d175a45..28f8c18 100644 --- a/qgraphicssystem_dd.cpp +++ b/qgraphicssystem_dd.cpp @@ -255,10 +255,28 @@ void QDevDaysGraphicsSystem::eventDispatcher() while (m_connection.bytesAvailable()) { QDataStream in(&m_connection); in >> m_message; - if (m_message.message == Event::EventMessage) { + switch (m_message.message) { + case Event::EventMessage: qDebug() << "SYSTEM: received event" << m_message.type; - } else if (m_message.message == Response::ResponseMessage) { - qDebug() << "SYSTEM: received response" << m_message.type << m_message.id; + QDevDaysWindowSurface *surface = m_surfaces.value(m_message.id); + switch (m_message.type) { + case Event::MousePressEvent: { + // ### we don't support multiple buttons or keyboard modifiers + QMouseEvent me(QEvent::MouseButtonPress, m_message.rect.topLeft().toPoint(), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); + QApplicationPrivate::handleMouseEvent(surface->window(), me); + break; } + case Event::MouseReleaseEvent: { + // ### we don't support multiple buttons or keyboard modifiers + QMouseEvent me(QEvent::MouseButtonRelease, m_message.rect.topLeft().toPoint(), Qt::LeftButton, Qt::NoButton, Qt::NoModifier); + QApplicationPrivate::handleMouseEvent(surface->window(), me); + break; } + } + break; + case Response::ResponseMessage: + case Request::RequestMessage: + default: + qDebug() << "SYSTEM: received wrong message type" << m_message.type << m_message.id; + break; } //if (!m_connection.isValid()) // handleConnectionError(); |