diff options
author | Yoann Lopes <yoann.lopes@digia.com> | 2012-09-28 17:53:11 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-10-01 09:31:28 +0200 |
commit | 439d5b0e53f564dc75e427743ccce75c6a62f1c6 (patch) | |
tree | 8d2409191d2f6c8ce67e5a05928a8ccd355c6137 /src/multimediawidgets/qvideowidget.cpp | |
parent | 06827f5d6e38ad01fecd99d0ce2cd74c6c63c535 (diff) | |
download | qtmultimedia-439d5b0e53f564dc75e427743ccce75c6a62f1c6.tar.gz |
QVideoWidget: fixed setFullScreen(false) on the Xcb platform.
Fixed exiting fullscreen when a QVideoWidget is embedded in another QWidget.
Requires change I3616dc0f in qtbase to work.
Because of a bug in some X window managers, the order in which
setWindowFlags() and showNormal() are called has been changed.
Change-Id: I335d47a3a1d9ce517978cad35597d72312150db1
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Diffstat (limited to 'src/multimediawidgets/qvideowidget.cpp')
-rw-r--r-- | src/multimediawidgets/qvideowidget.cpp | 15 |
1 files changed, 7 insertions, 8 deletions
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); |