diff options
Diffstat (limited to 'src/platformsupport')
-rw-r--r-- | src/platformsupport/fbconvenience/qfbscreen.cpp | 42 | ||||
-rw-r--r-- | src/platformsupport/fbconvenience/qfbscreen_p.h | 4 | ||||
-rw-r--r-- | src/platformsupport/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 5d2208a3a1..537a49819b 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<QFbWindow *>(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<QFbWindow *>(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 b37d3ad907..ffbb6721dc 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 d4a5a968ef..eea4877203 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() |