QDockWidget: call raise() when a dock widget starts to hover
When dock widget (1) starts to hover over another floating dock widget (2), the latter animates a rubber band, to indicate to the user that it is ready to accept a drop. The creation of a QRubberBand moves (2) one position up in the Z order. The consequence is a visual glitch: While - the mouse cursor dragging (1) is still outside (2) and - the visual rectangle of (1) starts overlapping (2) (1) hides behind (2). As soon as the mouse cursor enters (2), (1) suddenly comes on top and (2) hides behind (1). => raise() 1 as soon as it starts hovering. That brings it on top of the Z order, which is expected behavior. Pick-to: 6.5 Change-Id: I1140fc6ff109c7a713e7e2617072698467375585 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: David Faure <david.faure@kdab.com> (cherry picked from commit 1ab91b7bdbcced6ea4cc176da1d18e6b789208ae) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
parent
cb465195f1
commit
b8879bb17b
@ -2791,6 +2791,7 @@ void QMainWindowLayout::hover(QLayoutItem *hoverTarget,
|
||||
QWidget *widget = hoverTarget->widget();
|
||||
|
||||
#if QT_CONFIG(dockwidget)
|
||||
widget->raise();
|
||||
if ((dockOptions & QMainWindow::GroupedDragging) && (qobject_cast<QDockWidget*>(widget)
|
||||
|| qobject_cast<QDockWidgetGroupWindow *>(widget))) {
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user