diff --git a/source/ArmarXGui/applications/ArmarXGui/ArmarXMainWindow.cpp b/source/ArmarXGui/applications/ArmarXGui/ArmarXMainWindow.cpp
index e0b2e18a031cd3f52f776d4d61f0e2d9027c265f..32f84fba31e1adb7cf859140c38925edc3e3c925 100644
--- a/source/ArmarXGui/applications/ArmarXGui/ArmarXMainWindow.cpp
+++ b/source/ArmarXGui/applications/ArmarXGui/ArmarXMainWindow.cpp
@@ -1174,6 +1174,8 @@ void ArmarXMainWindow::updateAvailableWidgetList()
     ui->toolBar->addWidget(openWidgetButton);
     connect(searchField, SIGNAL(textChanged(QString)), this, SLOT(updateOpenWidgetButtonStatus(QString)), Qt::UniqueConnection);
 
+    connect(searchField, SIGNAL(returnPressed()), this , SLOT(openWidgetButtonClicked()), Qt::UniqueConnection);
+
     auto favoriteWidgetNames = getFavoriteWidgets();
 
     if (favoriteWidgetNames.size() > 0)
@@ -1296,6 +1298,14 @@ AddArmarXWidgetAction::~AddArmarXWidgetAction()
 
 void AddArmarXWidgetAction::triggered(QString widgetName)
 {
+    static std::chrono::high_resolution_clock::time_point lastTriggered {std::chrono::milliseconds{0}};
+    static std::chrono::milliseconds triggerDeadTime {100};
+    const auto now = std::chrono::high_resolution_clock::now();
+    if (lastTriggered + triggerDeadTime > now)
+    {
+        return;
+    }
+    lastTriggered = now;
     if (widgetName.isEmpty())
     {
         QLineEdit* edit = qobject_cast<QLineEdit*>(sender());
@@ -1328,7 +1338,6 @@ void AddArmarXWidgetAction::addArmarXWidget()
     {
         dialogAccepted();
     }
-
 }
 
 void AddArmarXWidgetAction::dialogAccepted()