summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/platformsupport/fbconvenience/qfbwindow.cpp20
-rw-r--r--src/platformsupport/fbconvenience/qfbwindow_p.h3
2 files changed, 23 insertions, 0 deletions
diff --git a/src/platformsupport/fbconvenience/qfbwindow.cpp b/src/platformsupport/fbconvenience/qfbwindow.cpp
index 246f50b4a9..8b6186db79 100644
--- a/src/platformsupport/fbconvenience/qfbwindow.cpp
+++ b/src/platformsupport/fbconvenience/qfbwindow.cpp
@@ -77,6 +77,26 @@ void QFbWindow::setGeometry(const QRect &rect)
QPlatformWindow::setGeometry(rect);
}
+void QFbWindow::setVisible(bool visible)
+{
+ if (visible) {
+ if (mWindowState & Qt::WindowFullScreen)
+ setGeometry(platformScreen()->geometry());
+ else if (mWindowState & Qt::WindowMaximized)
+ setGeometry(platformScreen()->availableGeometry());
+ }
+ QPlatformWindow::setVisible(visible);
+}
+
+
+void QFbWindow::setWindowState(Qt::WindowState state)
+{
+ QPlatformWindow::setWindowState(state);
+ mWindowState = state;
+ platformScreen()->invalidateRectCache();
+}
+
+
void QFbWindow::setWindowFlags(Qt::WindowFlags flags)
{
mWindowFlags = flags;
diff --git a/src/platformsupport/fbconvenience/qfbwindow_p.h b/src/platformsupport/fbconvenience/qfbwindow_p.h
index 25e2afca14..5ad921b0d7 100644
--- a/src/platformsupport/fbconvenience/qfbwindow_p.h
+++ b/src/platformsupport/fbconvenience/qfbwindow_p.h
@@ -59,7 +59,9 @@ public:
virtual void lower();
virtual void setGeometry(const QRect &rect);
+ virtual void setVisible(bool visible);
+ virtual void setWindowState(Qt::WindowState state);
virtual void setWindowFlags(Qt::WindowFlags type);
virtual Qt::WindowFlags windowFlags() const;
@@ -78,6 +80,7 @@ protected:
QFbBackingStore *mBackingStore;
QRect mOldGeometry;
Qt::WindowFlags mWindowFlags;
+ Qt::WindowState mWindowState;
WId mWindowId;
};