QDockWidget: Don't use QWidgetResizeHandler on Windows

QWidgetResizeHandler sets its own mouse cursor, which can cause the
wrong icon being shown in corner cases (e.g. floating dock with custom
title bar and windows container).

Windows handles resizing of toplevel windows on platform level. A
QWidgetResizeHandler is not necessary.

=> Do not create one on Windows.

Resizing of floating dock widgets is tested in
tst_QDockWidget::dockPermissions(), floatingTabs(), hideAndShow().
=> No separate autotest needed.

Fixes: QTBUG-102196
Pick-to: 6.6 6.5 6.2
Change-Id: I20ab203e6b7ecc1dbda0524c7ff9bef271a7c04f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Timothée Keller <timothee.keller@qt.io>
bb10
Axel Spoerl 2023-09-26 14:28:57 +02:00
parent 5f1c29376c
commit 975c0bdf73
1 changed files with 4 additions and 0 deletions

View File

@ -894,11 +894,15 @@ Qt::DockWidgetArea QDockWidgetPrivate::toDockWidgetArea(QInternal::DockPosition
void QDockWidgetPrivate::setResizerActive(bool active)
{
#ifdef Q_OS_WINDOWS
Q_UNUSED(active);
#else
Q_Q(QDockWidget);
if (active && !resizer)
resizer = new QWidgetResizeHandler(q);
if (resizer)
resizer->setEnabled(active);
#endif
}
bool QDockWidgetPrivate::isAnimating() const