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.2
Change-Id: I20ab203e6b7ecc1dbda0524c7ff9bef271a7c04f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Timothée Keller <timothee.keller@qt.io>
(cherry picked from commit 975c0bdf732ea7c5f7632913a27a1b6ae5cd5b26)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit c224c98b81793fb278bb8b3e5a69ef1010d74252)
This commit is contained in:
Axel Spoerl 2023-09-26 14:28:57 +02:00 committed by Qt Cherry-pick Bot
parent e896f23b69
commit 1d07ea9182

View File

@ -874,11 +874,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