diff options
author | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-12-01 10:05:42 +0100 |
---|---|---|
committer | Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> | 2014-12-04 20:18:21 +0100 |
commit | 8860522d7e8d76c6b59a593a329a6bfa754cb432 (patch) | |
tree | 8871d9dcedaa69de71eb2c28ad3f66967a192172 /src/widgets/widgets | |
parent | 50d29a695adc783a49de2c980d55663e27e9da35 (diff) |
QDockWidget: Prevent repetitive unplugging of floating dock widgets.
When calling QDockWidget::setTitleBarWidget() from within signal
QDockWidget::topLevelChanged(), a nested call of
QDockWidgetPrivate::setWindowState(unplug=true) is triggered, leaving
it with Qt::X11BypassWindowManagerHint set and thus invisible/off
screen.
Force the unplug parameter to false if the widget is already
in floating state.
Task-number: QTBUG-42818
Task-number: QTBUG-38964
Change-Id: I6aff61e4ee1501f5db281566b66db66c19351410
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Diffstat (limited to 'src/widgets/widgets')
-rw-r--r-- | src/widgets/widgets/qdockwidget.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index 4be133e277..93e6131ab9 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -1009,6 +1009,8 @@ void QDockWidgetPrivate::setWindowState(bool floating, bool unplug, const QRect } bool wasFloating = q->isFloating(); + if (wasFloating) // Prevent repetitive unplugging from nested invocations (QTBUG-42818) + unplug = false; bool hidden = q->isHidden(); if (q->isVisible()) |