diff options
-rw-r--r-- | src/gui/kernel/qplatformintegration_qpa.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qplatformintegration_qpa.h | 3 | ||||
-rw-r--r-- | src/gui/kernel/qstylehints.cpp | 5 | ||||
-rw-r--r-- | src/gui/kernel/qstylehints.h | 1 | ||||
-rw-r--r-- | src/gui/kernel/qwindow.cpp | 22 | ||||
-rw-r--r-- | src/gui/kernel/qwindow.h | 4 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfsintegration.cpp | 8 | ||||
-rw-r--r-- | src/plugins/platforms/eglfs/qeglfsintegration.h | 2 |
8 files changed, 40 insertions, 7 deletions
diff --git a/src/gui/kernel/qplatformintegration_qpa.cpp b/src/gui/kernel/qplatformintegration_qpa.cpp index 35cb9a160d..b35af1e8b7 100644 --- a/src/gui/kernel/qplatformintegration_qpa.cpp +++ b/src/gui/kernel/qplatformintegration_qpa.cpp @@ -235,6 +235,8 @@ QVariant QPlatformIntegration::styleHint(StyleHint hint) const return 10; case StartDragTime: return 500; + case ShowIsFullScreen: + return false; } return 0; diff --git a/src/gui/kernel/qplatformintegration_qpa.h b/src/gui/kernel/qplatformintegration_qpa.h index f9a8a206a8..3975d82288 100644 --- a/src/gui/kernel/qplatformintegration_qpa.h +++ b/src/gui/kernel/qplatformintegration_qpa.h @@ -107,7 +107,8 @@ public: MouseDoubleClickInterval, StartDragDistance, StartDragTime, - KeyboardAutoRepeatRate + KeyboardAutoRepeatRate, + ShowIsFullScreen }; virtual QVariant styleHint(StyleHint hint) const; diff --git a/src/gui/kernel/qstylehints.cpp b/src/gui/kernel/qstylehints.cpp index 4218477aac..eb0f055270 100644 --- a/src/gui/kernel/qstylehints.cpp +++ b/src/gui/kernel/qstylehints.cpp @@ -86,4 +86,9 @@ int QStyleHints::cursorFlashTime() const return hint(QPlatformIntegration::CursorFlashTime).toInt(); } +bool QStyleHints::showIsFullScreen() const +{ + return hint(QPlatformIntegration::ShowIsFullScreen).toBool(); +} + QT_END_NAMESPACE diff --git a/src/gui/kernel/qstylehints.h b/src/gui/kernel/qstylehints.h index d4e0415ba4..6fa72110fb 100644 --- a/src/gui/kernel/qstylehints.h +++ b/src/gui/kernel/qstylehints.h @@ -62,6 +62,7 @@ public: int keyboardInputInterval() const; int keyboardAutoRepeatRate() const; int cursorFlashTime() const; + bool showIsFullScreen() const; private: friend class QGuiApplication; QStyleHints(); diff --git a/src/gui/kernel/qwindow.cpp b/src/gui/kernel/qwindow.cpp index 2e724e1b3c..0d08316945 100644 --- a/src/gui/kernel/qwindow.cpp +++ b/src/gui/kernel/qwindow.cpp @@ -54,6 +54,8 @@ #include <QtCore/QDebug> +#include <QStyleHints> + QT_BEGIN_NAMESPACE /*! @@ -741,30 +743,42 @@ QObject *QWindow::focusObject() const return const_cast<QWindow *>(this); } +void QWindow::show() +{ + if (qApp->styleHints()->showIsFullScreen()) + showFullScreen(); + else + showNormal(); +} + +void QWindow::hide() +{ + setVisible(false); +} void QWindow::showMinimized() { setWindowState(Qt::WindowMinimized); - show(); + setVisible(true); } void QWindow::showMaximized() { setWindowState(Qt::WindowMaximized); - show(); + setVisible(true); } void QWindow::showFullScreen() { setWindowState(Qt::WindowFullScreen); - show(); + setVisible(true); requestActivateWindow(); } void QWindow::showNormal() { setWindowState(Qt::WindowNoState); - show(); + setVisible(true); } bool QWindow::close() diff --git a/src/gui/kernel/qwindow.h b/src/gui/kernel/qwindow.h index 6f9e4855b1..4d161658c6 100644 --- a/src/gui/kernel/qwindow.h +++ b/src/gui/kernel/qwindow.h @@ -209,8 +209,8 @@ public: public Q_SLOTS: void setVisible(bool visible); - inline void show() { setVisible(true); } - inline void hide() { setVisible(false); } + void show(); + void hide(); void showMinimized(); void showMaximized(); diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.cpp b/src/plugins/platforms/eglfs/qeglfsintegration.cpp index 12d196ffd6..47d5bd49eb 100644 --- a/src/plugins/platforms/eglfs/qeglfsintegration.cpp +++ b/src/plugins/platforms/eglfs/qeglfsintegration.cpp @@ -110,4 +110,12 @@ QAbstractEventDispatcher *QEglFSIntegration::guiThreadEventDispatcher() const return createUnixEventDispatcher(); } +QVariant QEglFSIntegration::styleHint(QPlatformIntegration::StyleHint hint) const +{ + if (hint == QPlatformIntegration::ShowIsFullScreen) + return true; + + return QPlatformIntegration::styleHint(hint); +} + QT_END_NAMESPACE diff --git a/src/plugins/platforms/eglfs/qeglfsintegration.h b/src/plugins/platforms/eglfs/qeglfsintegration.h index 997ed3afd2..58af1462b0 100644 --- a/src/plugins/platforms/eglfs/qeglfsintegration.h +++ b/src/plugins/platforms/eglfs/qeglfsintegration.h @@ -66,6 +66,8 @@ public: QAbstractEventDispatcher *guiThreadEventDispatcher() const; + QVariant styleHint(QPlatformIntegration::StyleHint hint) const; + private: QPlatformFontDatabase *mFontDb; }; |