QNX: Override QPlatformScreen::topLevelAt

Implemented QQnxScreen::topLevelAt method, as base implementation
returned wrong results. This fixes "tst_qwidget widgetAt" for instance.
Removed related method, that is not used at all.

Change-Id: I25c4f474cb0d661e5e5cdcdd0ab13d670fd4dc37
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
bb10
Bernd Weimer 2014-06-12 15:28:44 +02:00
parent 5250e4f157
commit 375b52f20f
2 changed files with 14 additions and 15 deletions

View File

@ -286,6 +286,18 @@ Qt::ScreenOrientation QQnxScreen::orientation() const
return orient;
}
QWindow *QQnxScreen::topLevelAt(const QPoint &point) const
{
QListIterator<QQnxWindow*> it(m_childWindows);
it.toBack();
while (it.hasPrevious()) {
QWindow *win = it.previous()->window();
if (win->geometry().contains(point))
return win;
}
return 0;
}
/*!
Check if the supplied angles are perpendicular to each other.
*/
@ -767,17 +779,4 @@ void QQnxScreen::setRootWindow(QQnxWindow *window)
m_rootWindow = window;
}
QWindow * QQnxScreen::topMostChildWindow() const
{
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.
return m_childWindows.last()->window();
}
return 0;
}
QT_END_NAMESPACE

View File

@ -73,6 +73,8 @@ public:
Qt::ScreenOrientation nativeOrientation() const;
Qt::ScreenOrientation orientation() const;
QWindow *topLevelAt(const QPoint &point) const;
bool isPrimaryScreen() const { return m_primaryScreen; }
int rotation() const { return m_currentRotation; }
@ -124,8 +126,6 @@ private:
void addMultimediaWindow(const QByteArray &id, screen_window_t window);
void removeOverlayOrUnderlayWindow(screen_window_t window);
QWindow *topMostChildWindow() const;
screen_context_t m_screenContext;
screen_display_t m_display;
QQnxWindow *m_rootWindow;