diff --git a/share/qtcreator/welcomescreen/welcomescreen.qml b/share/qtcreator/welcomescreen/welcomescreen.qml
index 62f3ccee5472b78ce42a37a03715ba08ad6d96be..36489f8e13bb40e28ea55bea865a2a0f32566207 100644
--- a/share/qtcreator/welcomescreen/welcomescreen.qml
+++ b/share/qtcreator/welcomescreen/welcomescreen.qml
@@ -33,6 +33,16 @@ Item  {
 
     property int screenDependHeightDistance: Math.min(50, Math.max(16, height / 30))
 
+    DropArea {
+        anchors.fill: parent
+        keys: ["text/uri-list"]
+        onDropped: {
+            if ((drop.supportedActions & Qt.CopyAction != 0)
+                    && welcomeMode.openDroppedFiles(drop.urls))
+                drop.accept(Qt.CopyAction);
+        }
+    }
+
     SideBar {
         id: sideBar
         model: pagesModel
diff --git a/src/plugins/welcome/welcomeplugin.cpp b/src/plugins/welcome/welcomeplugin.cpp
index 884eeb30db5cecebf0aa86a3753ba4b544c92483..bb445eb63614df373ca131117287f5d5a6b1ebbf 100644
--- a/src/plugins/welcome/welcomeplugin.cpp
+++ b/src/plugins/welcome/welcomeplugin.cpp
@@ -52,6 +52,7 @@
 #include <QDir>
 #include <QQmlPropertyMap>
 #include <QQuickImageProvider>
+#include <QTimer>
 
 #include <QtQuickWidgets/QQuickWidget>
 #include <QtQml/QQmlContext>
@@ -135,6 +136,8 @@ public:
     QStringList recentProjectsShortcuts() const { return m_recentProjectsShortcuts; }
     QStringList sessionsShortcuts() const { return m_sessionsShortcuts; }
 
+    Q_INVOKABLE bool openDroppedFiles(const QList<QUrl> &urls);
+
 public slots:
     void setActivePlugin(int pos)
     {
@@ -307,6 +310,18 @@ void WelcomeMode::initPlugins()
     m_welcomePage->setSource(QUrl::fromLocalFile(path));
 }
 
+bool WelcomeMode::openDroppedFiles(const QList<QUrl> &urls)
+{
+    const QList<QUrl> localUrls = Utils::filtered(urls, &QUrl::isLocalFile);
+    if (!localUrls.isEmpty()) {
+        QTimer::singleShot(0, [localUrls]() {
+            ICore::openFiles(Utils::transform(localUrls, &QUrl::toLocalFile), ICore::SwitchMode);
+        });
+        return true;
+    }
+    return false;
+}
+
 void WelcomeMode::welcomePluginAdded(QObject *obj)
 {
     IWelcomePage *page = qobject_cast<IWelcomePage*>(obj);