summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@digia.com>2012-09-28 17:53:11 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-10-01 09:31:28 +0200
commit439d5b0e53f564dc75e427743ccce75c6a62f1c6 (patch)
tree8d2409191d2f6c8ce67e5a05928a8ccd355c6137 /src/multimediawidgets
parent06827f5d6e38ad01fecd99d0ce2cd74c6c63c535 (diff)
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')
-rw-r--r--src/multimediawidgets/qvideowidget.cpp15
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);