diff --git a/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml b/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml
index 835ebbcb535fbb9903d9f31e9e31907b5b00885c..369de2ae630ce3a3289ce8beedcc8547b45fdbe4 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml
+++ b/src/plugins/qmldesigner/components/itemlibrary/qml/ItemView.qml
@@ -37,7 +37,7 @@ Item {
     width: GridView.view.cellWidth
     height: style.cellHeight
 
-    signal itemClicked()
+    signal itemPressed()
     signal itemDragged()
 
     Rectangle {
@@ -116,12 +116,25 @@ Item {
         id: mouseRegion
         anchors.fill: parent
 
-        onPositionChanged: {
-            itemDragged();
+        property bool reallyPressed: false
+        property int pressedX
+        property int pressedY
+
+        onPressed: {
+            reallyPressed = true
+            pressedX = mouse.x
+            pressedY = mouse.y
+            itemPressed()
         }
-        onClicked: {
-            itemClicked();
+        onPositionChanged: {
+            if (reallyPressed &&
+                (Math.abs(mouse.x - pressedX) > 2 ||
+                 Math.abs(mouse.y - pressedY) > 2)) {
+                itemDragged()
+                reallyPressed = false;
+            }
         }
+        onReleased: reallyPressed = false
     }
 }
 
diff --git a/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml b/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml
index c231730c8aaee861b6fd275952d9362bc704393d..e35d715558393b2a943cf9aabc52ad7d4aa3f452 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml
+++ b/src/plugins/qmldesigner/components/itemlibrary/qml/SectionView.qml
@@ -58,7 +58,7 @@ Column {
                 sectionView.itemSelected(itemLibId);
             }
 
-            onItemClicked: selectItem()
+            onItemPressed: selectItem()
             onItemDragged: {
                 selectItem();
                 sectionView.itemDragged(itemLibId);