Advertise window (de)activation to Qt event system
The integration plugin now connects screens to the newly introduced signals of the navigator event handler. The relevant screen then push a corresponding event to the Qt event loop. Change-Id: Ide6779bd1288c6560d113c77c60fc0ae30866d7f Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
This commit is contained in:
parent
f74e5a0359
commit
b6a4d69830
@ -448,6 +448,8 @@ void QQnxIntegration::createDisplays()
|
||||
screen, SLOT(windowClosed(void *)));
|
||||
|
||||
QObject::connect(m_navigatorEventHandler, SIGNAL(rotationChanged(int)), screen, SLOT(setRotation(int)));
|
||||
QObject::connect(m_navigatorEventHandler, SIGNAL(windowGroupActivated(QByteArray)), screen, SLOT(activateWindowGroup(QByteArray)));
|
||||
QObject::connect(m_navigatorEventHandler, SIGNAL(windowGroupDeactivated(QByteArray)), screen, SLOT(deactivateWindowGroup(QByteArray)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -348,4 +348,34 @@ void QQnxScreen::windowClosed(void *window)
|
||||
removeOverlayWindow(windowHandle);
|
||||
}
|
||||
|
||||
void QQnxScreen::activateWindowGroup(const QByteArray &id)
|
||||
{
|
||||
#if defined(QQNXSCREEN_DEBUG)
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
#endif
|
||||
|
||||
if (!rootWindow() || id != rootWindow()->groupName())
|
||||
return;
|
||||
|
||||
if (!m_childWindows.isEmpty()) {
|
||||
// We're picking up the last window of the list here
|
||||
// because this list is ordered by stacking order.
|
||||
// Last window is effectively the one on top.
|
||||
QWindow * const window = m_childWindows.last()->window();
|
||||
QWindowSystemInterface::handleWindowActivated(window);
|
||||
}
|
||||
}
|
||||
|
||||
void QQnxScreen::deactivateWindowGroup(const QByteArray &id)
|
||||
{
|
||||
#if defined(QQNXSCREEN_DEBUG)
|
||||
qDebug() << Q_FUNC_INFO;
|
||||
#endif
|
||||
|
||||
if (!rootWindow() || id != rootWindow()->groupName())
|
||||
return;
|
||||
|
||||
QWindowSystemInterface::handleWindowActivated(0);
|
||||
}
|
||||
|
||||
QT_END_NAMESPACE
|
||||
|
@ -94,6 +94,8 @@ public Q_SLOTS:
|
||||
void setRotation(int rotation);
|
||||
void newWindowCreated(void *window);
|
||||
void windowClosed(void *window);
|
||||
void activateWindowGroup(const QByteArray &id);
|
||||
void deactivateWindowGroup(const QByteArray &id);
|
||||
|
||||
private Q_SLOTS:
|
||||
void keyboardHeightChanged(int height);
|
||||
|
Loading…
Reference in New Issue
Block a user