diff --git a/videooverlay.cpp b/videooverlay.cpp
index e0136e2dc52aa13bfc6b8911e8838b34e431c96c..09c175551675e2f47215958c2fb204bff6d7f7a1 100644
--- a/videooverlay.cpp
+++ b/videooverlay.cpp
@@ -204,14 +204,15 @@ VideoOverlay::on_transferButton_toggled(bool checked)
 
     // receive the signal that ensure the button checked status is correct and contactpicker
     // is properly hidden
-    Utils::oneShotConnect(contactPicker_, &ContactPicker::willClose, [this](QMouseEvent *event) {
-        contactPicker_->hide();
-        // check if current mouse position is on button
-        auto relativeCursorPos = ui->transferCallButton->mapFromGlobal(event->pos());
-        if (!ui->transferCallButton->rect().contains(relativeCursorPos)) {
-            ui->transferCallButton->setChecked(false);
-        }
-    });
+    Utils::oneShotConnect(contactPicker_, &ContactPicker::willClose,
+        [this](QMouseEvent *event) {
+            contactPicker_->hide();
+            // check if current mouse position is on button
+            auto relativeClickPos = ui->transferCallButton->mapFromGlobal(event->globalPos());
+            if (!ui->transferCallButton->rect().contains(relativeClickPos)) {
+                ui->transferCallButton->setChecked(false);
+            }
+        });
 
     // for esc key, receive reject signal
     Utils::oneShotConnect(contactPicker_, &QDialog::rejected,