From e32ee62c7a1938c7ba331a8838120b0ea9c9ce3c Mon Sep 17 00:00:00 2001 From: Girish Ramakrishnan Date: Sat, 7 Jul 2012 08:49:12 +0530 Subject: [PATCH] linuxfb: raise and lower should take QFbWindow as args Reviewed-by: Gunnar Sletta Reviewed-by: Thomas Senyk Change-Id: I856ea141a39f23968169ba29be1445fa089f7f02 Reviewed-by: Girish Ramakrishnan --- .../fbconvenience/qfbscreen.cpp | 42 +++++++++---------- .../fbconvenience/qfbscreen_p.h | 4 +- .../fbconvenience/qfbwindow.cpp | 2 +- 3 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/platformsupport/fbconvenience/qfbscreen.cpp b/src/platformsupport/fbconvenience/qfbscreen.cpp index 5d2208a3a11..537a49819b1 100644 --- a/src/platformsupport/fbconvenience/qfbscreen.cpp +++ b/src/platformsupport/fbconvenience/qfbscreen.cpp @@ -67,26 +67,38 @@ void QFbScreen::initializeCompositor() connect(&redrawTimer, SIGNAL(timeout()), this, SLOT(doRedraw())); } -void QFbScreen::raise(QPlatformWindow * surface) +void QFbScreen::addWindow(QFbWindow *window) { - QFbWindow *s = static_cast(surface); - int index = windowStack.indexOf(s); + windowStack.prepend(window); + invalidateRectCache(); + setDirty(window->geometry()); +} + +void QFbScreen::removeWindow(QFbWindow *window) +{ + windowStack.removeOne(window); + invalidateRectCache(); + setDirty(window->geometry()); +} + +void QFbScreen::raise(QFbWindow *window) +{ + int index = windowStack.indexOf(window); if (index <= 0) return; windowStack.move(index, 0); invalidateRectCache(); - setDirty(s->geometry()); + setDirty(window->geometry()); } -void QFbScreen::lower(QPlatformWindow * surface) +void QFbScreen::lower(QFbWindow *window) { - QFbWindow *s = static_cast(surface); - int index = windowStack.indexOf(s); + int index = windowStack.indexOf(window); if (index == -1 || index == (windowStack.size() - 1)) return; windowStack.move(index, windowStack.size() - 1); invalidateRectCache(); - setDirty(s->geometry()); + setDirty(window->geometry()); } QWindow *QFbScreen::topLevelAt(const QPoint & p) const @@ -222,19 +234,5 @@ QRegion QFbScreen::doRedraw() return touchedRegion; } -void QFbScreen::addWindow(QFbWindow *surface) -{ - windowStack.prepend(surface); - invalidateRectCache(); - setDirty(surface->geometry()); -} - -void QFbScreen::removeWindow(QFbWindow * surface) -{ - windowStack.removeOne(surface); - invalidateRectCache(); - setDirty(surface->geometry()); -} - QT_END_NAMESPACE diff --git a/src/platformsupport/fbconvenience/qfbscreen_p.h b/src/platformsupport/fbconvenience/qfbscreen_p.h index b37d3ad9079..ffbb6721dc1 100644 --- a/src/platformsupport/fbconvenience/qfbscreen_p.h +++ b/src/platformsupport/fbconvenience/qfbscreen_p.h @@ -69,8 +69,8 @@ public: // compositor api virtual void addWindow(QFbWindow *window); virtual void removeWindow(QFbWindow *window); - virtual void raise(QPlatformWindow *window); - virtual void lower(QPlatformWindow *window); + virtual void raise(QFbWindow *window); + virtual void lower(QFbWindow *window); virtual void setDirty(const QRect &rect); protected slots: diff --git a/src/platformsupport/fbconvenience/qfbwindow.cpp b/src/platformsupport/fbconvenience/qfbwindow.cpp index d4a5a968efd..eea48772035 100644 --- a/src/platformsupport/fbconvenience/qfbwindow.cpp +++ b/src/platformsupport/fbconvenience/qfbwindow.cpp @@ -52,7 +52,7 @@ QFbWindow::QFbWindow(QWindow *window) static QAtomicInt winIdGenerator(1); windowId = winIdGenerator.fetchAndAddRelaxed(1); - platformScreen()->addWindow(window); + platformScreen()->addWindow(this); } QFbWindow::~QFbWindow()