m_eventBuffer->WakeUp(m_eventBuffer.data());
}
-void QDirectFbInput::addWindow(DFBWindowID id, QWindow *qt_window)
+void QDirectFbInput::addWindow(IDirectFBWindow *window, QWindow *platformWindow)
{
- m_tlwMap.insert(id,qt_window);
- QDirectFBPointer<IDirectFBWindow> window;
- m_dfbDisplayLayer->GetWindow(m_dfbDisplayLayer.data(), id, window.outPtr());
+ DFBResult res;
+ DFBWindowID id;
+
+ res = window->GetID(window, &id);
+ if (res != DFB_OK) {
+ DirectFBError("QDirectFbInput::addWindow", res);
+ return;
+ }
- window->AttachEventBuffer(window.data(), m_eventBuffer.data());
+ m_tlwMap.insert(id, platformWindow);
+ window->AttachEventBuffer(window, m_eventBuffer.data());
}
-void QDirectFbInput::removeWindow(WId wId)
+void QDirectFbInput::removeWindow(IDirectFBWindow *window)
{
- QDirectFBPointer<IDirectFBWindow> window;
- m_dfbDisplayLayer->GetWindow(m_dfbDisplayLayer.data(), wId, window.outPtr());
+ DFBResult res;
+ DFBWindowID id;
+
+ res = window->GetID(window, &id);
+ if (res != DFB_OK) {
+ DirectFBError("QDirectFbInput::removeWindow", res);
+ return;
+ }
- window->DetachEventBuffer(window.data(), m_eventBuffer.data());
- m_tlwMap.remove(wId);
+ window->DetachEventBuffer(window, m_eventBuffer.data());
+ m_tlwMap.remove(id);
}
void QDirectFbInput::handleEvents()
Q_OBJECT
public:
QDirectFbInput();
- void addWindow(DFBWindowID id, QWindow *window);
- void removeWindow(WId wId);
+ void addWindow(IDirectFBWindow *window, QWindow *platformWindow);
+ void removeWindow(IDirectFBWindow *window);
void stopInputEventLoop();
setVisible(window()->visible());
- DFBWindowID id;
- m_dfbWindow->GetID(m_dfbWindow.data(), &id);
- m_inputHandler->addWindow(id,tlw);
+ m_inputHandler->addWindow(m_dfbWindow.data(), tlw);
}
QDirectFbWindow::~QDirectFbWindow()
{
- m_inputHandler->removeWindow(winId());
+ m_inputHandler->removeWindow(m_dfbWindow.data());
m_dfbWindow->Destroy(m_dfbWindow.data());
}