summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets
diff options
context:
space:
mode:
authorFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-12-01 10:05:42 +0100
committerFriedemann Kleint <Friedemann.Kleint@theqtcompany.com>2014-12-04 20:18:21 +0100
commit8860522d7e8d76c6b59a593a329a6bfa754cb432 (patch)
tree8871d9dcedaa69de71eb2c28ad3f66967a192172 /src/widgets/widgets
parent50d29a695adc783a49de2c980d55663e27e9da35 (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.cpp2
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())