diff options
Diffstat (limited to 'src/platformsupport/fbconvenience/qfbwindow.cpp')
-rw-r--r-- | src/platformsupport/fbconvenience/qfbwindow.cpp | 93 |
1 files changed, 31 insertions, 62 deletions
diff --git a/src/platformsupport/fbconvenience/qfbwindow.cpp b/src/platformsupport/fbconvenience/qfbwindow.cpp index f83f084363..da7c881d94 100644 --- a/src/platformsupport/fbconvenience/qfbwindow.cpp +++ b/src/platformsupport/fbconvenience/qfbwindow.cpp @@ -42,21 +42,34 @@ #include "qfbwindow_p.h" #include "qfbscreen_p.h" +#include <QtGui/QScreen> + QT_BEGIN_NAMESPACE +QFbWindow::QFbWindow(QWindow *window) + : QPlatformWindow(window), mBackingStore(0), visibleFlag(false) +{ + static QAtomicInt winIdGenerator(1); + windowId = winIdGenerator.fetchAndAddRelaxed(1); +} + +QFbWindow::~QFbWindow() +{ + platformScreen()->removeWindow(this); +} + +QFbScreen *QFbWindow::platformScreen() const +{ + return static_cast<QFbScreen *>(window()->screen()->handle()); +} + void QFbWindow::setGeometry(const QRect &rect) { -// store previous geometry for screen update + // store previous geometry for screen update oldGeometry = geometry(); - - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); - while (i != end) { - (*i)->invalidateRectCache(); - ++i; - } -//### QWindowSystemInterface::handleGeometryChange(window(), rect); + platformScreen()->invalidateRectCache(); + //### QWindowSystemInterface::handleGeometryChange(window(), rect); QPlatformWindow::setGeometry(rect); } @@ -64,24 +77,14 @@ void QFbWindow::setGeometry(const QRect &rect) void QFbWindow::setVisible(bool visible) { visibleFlag = visible; - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); - while (i != end) { - (*i)->invalidateRectCache(); - (*i)->setDirty(geometry()); - ++i; - } + platformScreen()->invalidateRectCache(); + platformScreen()->setDirty(geometry()); } Qt::WindowFlags QFbWindow::setWindowFlags(Qt::WindowFlags type) { flags = type; - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); - while (i != end) { - (*i)->invalidateRectCache(); - ++i; - } + platformScreen()->invalidateRectCache(); return flags; } @@ -90,41 +93,14 @@ Qt::WindowFlags QFbWindow::windowFlags() const return flags; } -QFbWindow::QFbWindow(QWindow *window) - : QPlatformWindow(window), mBackingStore(0), visibleFlag(false) -{ - static QAtomicInt winIdGenerator(1); - windowId = winIdGenerator.fetchAndAddRelaxed(1); -} - -QFbWindow::~QFbWindow() -{ - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); - while (i != end) { - (*i)->removeWindow(this); - ++i; - } -} - void QFbWindow::raise() { - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); - while (i != end) { - (*i)->raise(this); - ++i; - } + platformScreen()->raise(this); } void QFbWindow::lower() { - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); - while (i != end) { - (*i)->lower(this); - ++i; - } + platformScreen()->lower(this); } void QFbWindow::repaint(const QRegion ®ion) @@ -136,20 +112,13 @@ void QFbWindow::repaint(const QRegion ®ion) currentGeometry.top() + dirtyClient.top(), dirtyClient.width(), dirtyClient.height()); - QList<QFbScreen *>::const_iterator i = mScreens.constBegin(); - QList<QFbScreen *>::const_iterator end = mScreens.constEnd(); QRect oldGeometryLocal = oldGeometry; oldGeometry = currentGeometry; - while (i != end) { - // If this is a move, redraw the previous location - if (oldGeometryLocal != currentGeometry) { - (*i)->setDirty(oldGeometryLocal); - } - (*i)->setDirty(dirtyRegion); - ++i; - } + // If this is a move, redraw the previous location + if (oldGeometryLocal != currentGeometry) + platformScreen()->setDirty(oldGeometryLocal); + platformScreen()->setDirty(dirtyRegion); } - QT_END_NAMESPACE |