diff options
author | Thierry Bastian <thierry.bastian@nokia.com> | 2009-12-07 13:01:54 (GMT) |
---|---|---|
committer | Thierry Bastian <thierry.bastian@nokia.com> | 2009-12-07 13:08:10 (GMT) |
commit | 7ad244cad155f32f22e82e1458eb1c42f759a620 (patch) | |
tree | 261f005d951c977d1db36c456780f2f6aa0a1164 | |
parent | 757fc27dcdaf67b2f79d2f3bcc8eaaeff345c0c8 (diff) | |
download | Qt-7ad244cad155f32f22e82e1458eb1c42f759a620.zip Qt-7ad244cad155f32f22e82e1458eb1c42f759a620.tar.gz Qt-7ad244cad155f32f22e82e1458eb1c42f759a620.tar.bz2 |
Fix the toolbars docking
The gap could be inserted even if the toolbar is very far away.
This is due to the fact that we were only considering the distance
as 1-directional. Now we also check that mouse position is inside
the main window.
Reviewed-by: gabi
-rw-r--r-- | src/gui/widgets/qtoolbararealayout.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/gui/widgets/qtoolbararealayout.cpp b/src/gui/widgets/qtoolbararealayout.cpp index c329305..b83026b 100644 --- a/src/gui/widgets/qtoolbararealayout.cpp +++ b/src/gui/widgets/qtoolbararealayout.cpp @@ -598,16 +598,21 @@ int QToolBarAreaLayoutInfo::distance(const QPoint &pos) const { switch (dockPos) { case QInternal::LeftDock: - return pos.x() - rect.right(); + if (pos.y() < rect.bottom()) + return pos.x() - rect.right(); case QInternal::RightDock: - return rect.left() - pos.x(); + if (pos.y() < rect.bottom()) + return rect.left() - pos.x(); case QInternal::TopDock: - return pos.y() - rect.bottom(); + if (pos.x() < rect.right()) + return pos.y() - rect.bottom(); case QInternal::BottomDock: - return rect.top() - pos.y(); + if (pos.x() < rect.right()) + return rect.top() - pos.y(); default: - return -1; + break; } + return -1; } /****************************************************************************** |