From a4cb8479a3d9cbb4991b6886cfaa075f6991d08d Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Fri, 21 Jul 2017 14:23:50 +0200 Subject: [PATCH] QmlDesigner: Fix flickering move cursor The check for selectedItemCursorInMovableArea has to be the first check, because otherwise we might change back to the selection tool if e.g. the item list is empty. This leads to a flickering cursor and bad usabilty. Change-Id: I0ea82cd1c4bf83cde0b173ab08f19bd04b1128c0 Reviewed-by: Tim Jenssen --- .../components/formeditor/movetool.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/components/formeditor/movetool.cpp b/src/plugins/qmldesigner/components/formeditor/movetool.cpp index fba74d9b3cb..5fb29ac88d4 100644 --- a/src/plugins/qmldesigner/components/formeditor/movetool.cpp +++ b/src/plugins/qmldesigner/components/formeditor/movetool.cpp @@ -124,23 +124,26 @@ void MoveTool::mouseMoveEvent(const QList &itemList, void MoveTool::hoverMoveEvent(const QList &itemList, QGraphicsSceneMouseEvent * event) { - if (itemList.isEmpty()) { - view()->changeToSelectionTool(); - return; - } - ResizeHandleItem* resizeHandle = ResizeHandleItem::fromGraphicsItem(itemList.first()); if (resizeHandle) { view()->changeToResizeTool(); return; } + if (view()->hasSingleSelectedModelNode() && selectedItemCursorInMovableArea(event->scenePos())) + return; + + if (itemList.isEmpty()) { + view()->changeToSelectionTool(); + return; + } + if (!topSelectedItemIsMovable(itemList)) { view()->changeToSelectionTool(); return; } - if (view()->hasSingleSelectedModelNode() && !selectedItemCursorInMovableArea(event->scenePos())) { + if (view()->hasSingleSelectedModelNode()) { view()->changeToSelectionTool(); return; }