linuxfb: raise and lower should take QFbWindow as args

Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>

Change-Id: I856ea141a39f23968169ba29be1445fa089f7f02
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
This commit is contained in:
Girish Ramakrishnan 2012-07-07 08:49:12 +05:30 committed by Qt by Nokia
parent c2b9c0ec89
commit e32ee62c7a
3 changed files with 23 additions and 25 deletions

View File

@ -67,26 +67,38 @@ void QFbScreen::initializeCompositor()
connect(&redrawTimer, SIGNAL(timeout()), this, SLOT(doRedraw())); connect(&redrawTimer, SIGNAL(timeout()), this, SLOT(doRedraw()));
} }
void QFbScreen::raise(QPlatformWindow * surface) void QFbScreen::addWindow(QFbWindow *window)
{ {
QFbWindow *s = static_cast<QFbWindow *>(surface); windowStack.prepend(window);
int index = windowStack.indexOf(s); 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) if (index <= 0)
return; return;
windowStack.move(index, 0); windowStack.move(index, 0);
invalidateRectCache(); 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(window);
int index = windowStack.indexOf(s);
if (index == -1 || index == (windowStack.size() - 1)) if (index == -1 || index == (windowStack.size() - 1))
return; return;
windowStack.move(index, windowStack.size() - 1); windowStack.move(index, windowStack.size() - 1);
invalidateRectCache(); invalidateRectCache();
setDirty(s->geometry()); setDirty(window->geometry());
} }
QWindow *QFbScreen::topLevelAt(const QPoint & p) const QWindow *QFbScreen::topLevelAt(const QPoint & p) const
@ -222,19 +234,5 @@ QRegion QFbScreen::doRedraw()
return touchedRegion; 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 QT_END_NAMESPACE

View File

@ -69,8 +69,8 @@ public:
// compositor api // compositor api
virtual void addWindow(QFbWindow *window); virtual void addWindow(QFbWindow *window);
virtual void removeWindow(QFbWindow *window); virtual void removeWindow(QFbWindow *window);
virtual void raise(QPlatformWindow *window); virtual void raise(QFbWindow *window);
virtual void lower(QPlatformWindow *window); virtual void lower(QFbWindow *window);
virtual void setDirty(const QRect &rect); virtual void setDirty(const QRect &rect);
protected slots: protected slots:

View File

@ -52,7 +52,7 @@ QFbWindow::QFbWindow(QWindow *window)
static QAtomicInt winIdGenerator(1); static QAtomicInt winIdGenerator(1);
windowId = winIdGenerator.fetchAndAddRelaxed(1); windowId = winIdGenerator.fetchAndAddRelaxed(1);
platformScreen()->addWindow(window); platformScreen()->addWindow(this);
} }
QFbWindow::~QFbWindow() QFbWindow::~QFbWindow()