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>bb10
parent
50d29a695a
commit
8860522d7e
|
|
@ -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())
|
||||
|
|
|
|||
Loading…
Reference in New Issue