diff options
Diffstat (limited to 'src/widgets/widgets/qdockwidget.cpp')
-rw-r--r-- | src/widgets/widgets/qdockwidget.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp index 6c871aae2c..ba8bd90da6 100644 --- a/src/widgets/widgets/qdockwidget.cpp +++ b/src/widgets/widgets/qdockwidget.cpp @@ -55,6 +55,7 @@ #include <private/qwidgetresizehandler_p.h> #include <private/qstylesheetstyle_p.h> +#include <qpa/qplatformtheme.h> #include "qdockwidget_p.h" #include "qmainwindowlayout_p.h" @@ -922,7 +923,8 @@ bool QDockWidgetPrivate::mousePressEvent(QMouseEvent *event) initDrag(event->pos(), false); if (state) - state->ctrlDrag = hasFeature(this, QDockWidget::DockWidgetFloatable) && event->modifiers() & Qt::ControlModifier; + state->ctrlDrag = (hasFeature(this, QDockWidget::DockWidgetFloatable) && event->modifiers() & Qt::ControlModifier) || + (!hasFeature(this, QDockWidget::DockWidgetMovable) && q->isFloating()); return true; } @@ -1044,7 +1046,8 @@ void QDockWidgetPrivate::nonClientAreaMouseEvent(QMouseEvent *event) initDrag(event->pos(), true); if (state == 0) break; - state->ctrlDrag = event->modifiers() & Qt::ControlModifier; + state->ctrlDrag = (event->modifiers() & Qt::ControlModifier) || + (!hasFeature(this, QDockWidget::DockWidgetMovable) && q->isFloating()); startDrag(); break; case QEvent::NonClientAreaMouseMove: @@ -1729,8 +1732,8 @@ void QDockWidget::setTitleBarWidget(QWidget *widget) /*! \since 4.3 - Returns the custom title bar widget set on the QDockWidget, or 0 if no - custom title bar has been set. + Returns the custom title bar widget set on the QDockWidget, or + \nullptr if no custom title bar has been set. \sa setTitleBarWidget() */ |