summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx
diff options
context:
space:
mode:
authorBernd Weimer <bweimer@blackberry.com>2014-06-12 15:28:44 +0200
committerBernd Weimer <bweimer@blackberry.com>2014-07-02 10:29:33 +0200
commit375b52f20f12e9180d2b4e2dce9f53facbdb4a21 (patch)
treed55464af2ebf91bf461fa1834d5d31d7487bb2a1 /src/plugins/platforms/qnx
parent5250e4f15743bcdc67e77e5ab3b41d64723e62dd (diff)
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>
Diffstat (limited to 'src/plugins/platforms/qnx')
-rw-r--r--src/plugins/platforms/qnx/qqnxscreen.cpp25
-rw-r--r--src/plugins/platforms/qnx/qqnxscreen.h4
2 files changed, 14 insertions, 15 deletions
diff --git a/src/plugins/platforms/qnx/qqnxscreen.cpp b/src/plugins/platforms/qnx/qqnxscreen.cpp
index 9ba0f5cd2e..add45ecbe5 100644
--- a/src/plugins/platforms/qnx/qqnxscreen.cpp
+++ b/src/plugins/platforms/qnx/qqnxscreen.cpp
@@ -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
diff --git a/src/plugins/platforms/qnx/qqnxscreen.h b/src/plugins/platforms/qnx/qqnxscreen.h
index a0b760135f..6b2281f7b9 100644
--- a/src/plugins/platforms/qnx/qqnxscreen.h
+++ b/src/plugins/platforms/qnx/qqnxscreen.h
@@ -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;