diff options
-rw-r--r-- | examples/player/videowidget.cpp | 2 | ||||
-rw-r--r-- | src/multimediawidgets/qvideowidget.cpp | 15 |
2 files changed, 8 insertions, 9 deletions
diff --git a/examples/player/videowidget.cpp b/examples/player/videowidget.cpp index 0b2d70903..1dfbf94c0 100644 --- a/examples/player/videowidget.cpp +++ b/examples/player/videowidget.cpp @@ -57,7 +57,7 @@ VideoWidget::VideoWidget(QWidget *parent) void VideoWidget::keyPressEvent(QKeyEvent *event) { if (event->key() == Qt::Key_Escape && isFullScreen()) { - showNormal(); + setFullScreen(false); event->accept(); } else if (event->key() == Qt::Key_Enter && event->modifiers() & Qt::Key_Alt) { diff --git a/src/multimediawidgets/qvideowidget.cpp b/src/multimediawidgets/qvideowidget.cpp index a5670d24c..031193df4 100644 --- a/src/multimediawidgets/qvideowidget.cpp +++ b/src/multimediawidgets/qvideowidget.cpp @@ -720,9 +720,9 @@ void QVideoWidget::setFullScreen(bool fullScreen) { Q_D(QVideoWidget); - if (fullScreen) { - Qt::WindowFlags flags = windowFlags(); + Qt::WindowFlags flags = windowFlags(); + if (fullScreen) { d->nonFullScreenFlags = flags & (Qt::Window | Qt::SubWindow); flags |= Qt::Window; flags &= ~Qt::SubWindow; @@ -730,6 +730,10 @@ void QVideoWidget::setFullScreen(bool fullScreen) showFullScreen(); } else { + flags &= ~(Qt::Window | Qt::SubWindow); //clear the flags... + flags |= d->nonFullScreenFlags; //then we reset the flags (window and subwindow) + setWindowFlags(flags); + showNormal(); } } @@ -910,13 +914,8 @@ bool QVideoWidget::event(QEvent *event) if (d->currentControl) d->currentControl->setFullScreen(false); - if (d->wasFullScreen) { - flags &= ~(Qt::Window | Qt::SubWindow); //clear the flags... - flags |= d->nonFullScreenFlags; //then we reset the flags (window and subwindow) - setWindowFlags(flags); - + if (d->wasFullScreen) emit fullScreenChanged(d->wasFullScreen = false); - } } } return QWidget::event(event); |