summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qdockwidget.cpp
diff options
context:
space:
mode:
authorJames Turner <james.turner@kdab.com>2012-07-06 12:28:44 +0100
committerQt by Nokia <qt-info@nokia.com>2012-07-23 17:12:57 +0200
commit78d8c201f16374df4d5b8682f9eda2885125e1a6 (patch)
tree7b25d860559f35cb164f3e2a5fe76f0e6cffaf17 /src/widgets/widgets/qdockwidget.cpp
parent2dc1722b9eda058748b19b6401a56cb764072599 (diff)
QTBUG-26296, dock widget moving
Cocoa lacked implementation of FrameStrut events, and also frameMargins on QPlatformWindow. Fix both of these issues. Unfortunately QDockWidget also contains a tangle of #ifdef MAC behaviour which I am unclear about. What's included here disables some logic on Mac that seems definitely wrong - while moving a window on Mac we now generate NonClientArea events (as intended, I believe), but this should not cause dock-widget dragging to end. Note the window titlebar is the only frame-strut/non-client area on Mac (as far as I can see) Task-number: QTBUG-26296 Change-Id: Id0c6e954db64b9f9f71d16355cb92922877e5ebe Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Diffstat (limited to 'src/widgets/widgets/qdockwidget.cpp')
-rw-r--r--src/widgets/widgets/qdockwidget.cpp11
1 files changed, 2 insertions, 9 deletions
diff --git a/src/widgets/widgets/qdockwidget.cpp b/src/widgets/widgets/qdockwidget.cpp
index 4a1ce17cff..bbea8d3afc 100644
--- a/src/widgets/widgets/qdockwidget.cpp
+++ b/src/widgets/widgets/qdockwidget.cpp
@@ -943,18 +943,11 @@ void QDockWidgetPrivate::nonClientAreaMouseEvent(QMouseEvent *event)
case QEvent::NonClientAreaMouseMove:
if (state == 0 || !state->dragging)
break;
+
+#ifndef Q_OS_MAC
if (state->nca) {
endDrag();
}
-#ifdef Q_OS_MAC
- else { // workaround for lack of mouse-grab on Mac
- QMainWindowLayout *layout = qt_mainwindow_layout(qobject_cast<QMainWindow *>(q->parentWidget()));
- Q_ASSERT(layout != 0);
-
- q->move(event->globalPos() - state->pressPos);
- if (!state->ctrlDrag)
- layout->hover(state->widgetItem, event->globalPos());
- }
#endif
break;
case QEvent::NonClientAreaMouseButtonRelease: