diff --git a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml
index 32c2f5a0c8f49e9c8febbd03755615ff41759351..09f4f6c8fe48d24fd6b639cca832725f2557c74e 100644
--- a/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml
+++ b/share/qtcreator/qmldesigner/itemLibraryQmlSources/ItemDelegate.qml
@@ -73,12 +73,8 @@ Item {
             id: mouseRegion
             anchors.fill: parent
 
-            property bool reallyPressed: false
-            property int pressedX
-            property int pressedY
-
             onPressed: {
-                rootView.startDragAndDrop(itemLibraryEntry)
+                rootView.startDragAndDrop(mouseRegion, itemLibraryEntry)
             }
         }
     }
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
index 5b2dc1034c157a0d32061d8c6db236142c40274e..e9d1ab13ba762bafd410c891d5a1fb65d3cac74a 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.cpp
@@ -48,6 +48,7 @@
 #include <QTabBar>
 #include <QImageReader>
 #include <QMimeData>
+#include <QMouseEvent>
 #include <QWheelEvent>
 #include <QMenu>
 #include <QApplication>
@@ -55,10 +56,6 @@
 #include <QShortcut>
 #include <QQuickItem>
 
-#include <private/qquickwidget_p.h> // mouse ungrabbing workaround on quickitems
-#include <private/qquickwindow_p.h> // mouse ungrabbing workaround on quickitems
-
-
 namespace QmlDesigner {
 
 ItemLibraryWidget::ItemLibraryWidget(QWidget *parent) :
@@ -265,14 +262,7 @@ void ItemLibraryWidget::setResourcePath(const QString &resourcePath)
     updateSearch();
 }
 
-static void ungrabMouseOnQMLWorldWorkAround(QQuickWidget *quickWidget)
-{
-    const QQuickWidgetPrivate *widgetPrivate = QQuickWidgetPrivate::get(quickWidget);
-    if (widgetPrivate && widgetPrivate->offscreenWindow && widgetPrivate->offscreenWindow->mouseGrabberItem())
-        widgetPrivate->offscreenWindow->mouseGrabberItem()->ungrabMouse();
-}
-
-void ItemLibraryWidget::startDragAndDrop(QVariant itemLibraryId)
+void ItemLibraryWidget::startDragAndDrop(QQuickItem *mouseArea, QVariant itemLibraryId)
 {
     m_currentitemLibraryEntry = itemLibraryId.value<ItemLibraryEntry>();
 
@@ -283,9 +273,14 @@ void ItemLibraryWidget::startDragAndDrop(QVariant itemLibraryId)
                         m_currentitemLibraryEntry.libraryEntryIconPath()));
     drag->setMimeData(mimeData);
 
-    drag->exec();
+    /* Workaround for bug in Qt. The release event is not delivered for Qt < 5.9 if a drag is started */
+    QMouseEvent event (QEvent::MouseButtonRelease, QPoint(-1, -1), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
+    QApplication::sendEvent(mouseArea, &event);
 
-    ungrabMouseOnQMLWorldWorkAround(m_itemViewQuickWidget.data());
+    QTimer::singleShot(0, [drag]() {
+        drag->exec();
+        drag->deleteLater();
+    });
 }
 
 void ItemLibraryWidget::removeImport(const QString &name)
diff --git a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
index 946dfc9b7d09e823ce3c497f1d94cbc07f503f38..a831b4c5fd13da53b8f8c2703cd940016d3b1513 100644
--- a/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
+++ b/src/plugins/qmldesigner/components/itemlibrary/itemlibrarywidget.h
@@ -84,7 +84,7 @@ public:
 
     void setModel(Model *model);
 
-    Q_INVOKABLE void startDragAndDrop(QVariant itemLibId);
+    Q_INVOKABLE void startDragAndDrop(QQuickItem *mouseArea, QVariant itemLibId);
 
 protected:
     void removeImport(const QString &name);
diff --git a/src/plugins/qmldesigner/qmldesignerplugin.pro b/src/plugins/qmldesigner/qmldesignerplugin.pro
index 460a77a96ef01da11c16d8bab7ea243e13c83b80..a5261e0931a344d8e9872ee4fd1cf0b0e6c064cc 100644
--- a/src/plugins/qmldesigner/qmldesignerplugin.pro
+++ b/src/plugins/qmldesigner/qmldesignerplugin.pro
@@ -1,5 +1,4 @@
 QT += quickwidgets
-QT += widgets-private quick-private quickwidgets-private core-private gui-private #mouse ungrabbing workaround on quickitems
 CONFIG += exceptions
 
 INCLUDEPATH += $$PWD