diff --git a/modules/gui/qt/maininterface/compositor_x11_uisurface.cpp b/modules/gui/qt/maininterface/compositor_x11_uisurface.cpp
index a3b9b3f0a723240f30bb7e2ed9444e6af6f8aa44..50827d985eccd55dcd710966333f16d28999489a 100644
--- a/modules/gui/qt/maininterface/compositor_x11_uisurface.cpp
+++ b/modules/gui/qt/maininterface/compositor_x11_uisurface.cpp
@@ -326,7 +326,29 @@ static void remapInputMethodQueryEvent(QObject *object, QInputMethodQueryEvent *
 
 bool CompositorX11UISurface::eventFilter(QObject*, QEvent *event)
 {
-    switch (event->type())
+    assert(event);
+    const auto type = event->type();
+    switch (type)
+    {
+    case QEvent::TouchBegin:
+    case QEvent::TouchCancel:
+    case QEvent::TouchEnd:
+    // case QEvent::TouchUpdate:
+    // case QEvent::MouseMove:
+    case QEvent::MouseButtonPress:
+    case QEvent::MouseButtonDblClick:
+    case QEvent::MouseButtonRelease:
+    {
+        // FIXME: This is not nice, but offscreen window is not nice anyway and without it
+        //        popups do not close with press outside.
+        const auto overlay = m_uiWindow->property("_q_QQuickOverlay").value<QQuickItem*>();
+        if (overlay && overlay->isVisible())
+            QCoreApplication::sendEvent(overlay, event);
+    }
+    default: break;
+    }
+
+    switch (type)
     {
 
     case QEvent::Move:
diff --git a/modules/gui/qt/player/qml/TracksMenu.qml b/modules/gui/qt/player/qml/TracksMenu.qml
index 25511cda95d8d143d63572d6fda8abc63799ee45..a98beebc492f0cf496746da8fe74d65e2f683115 100644
--- a/modules/gui/qt/player/qml/TracksMenu.qml
+++ b/modules/gui/qt/player/qml/TracksMenu.qml
@@ -40,10 +40,6 @@ T.Popup {
 
     height: VLCStyle.dp(296, VLCStyle.scale)
 
-    // Popup.CloseOnPressOutside doesn't work with non-model Popup on Qt < 5.15
-    closePolicy: Popup.CloseOnPressOutside | Popup.CloseOnEscape
-    modal: true
-
     // Animations
 
     Behavior on width {
@@ -60,8 +56,6 @@ T.Popup {
         colorSet: ColorContext.Window
     }
 
-    T.Overlay.modal: null
-
     background: Rectangle {
         // NOTE: The opacity should be stronger on a light background for readability.
         color: popupTheme.bg.primary.alpha(popupTheme.palette.isDark ? 0.8 : 0.96)
diff --git a/modules/gui/qt/widgets/qml/PopupIconToolButton.qml b/modules/gui/qt/widgets/qml/PopupIconToolButton.qml
index b0f1be904acd1b43faa28f959fee3aa75599a9f3..95dacd3c3f123dc531332763e85c0b05d7d4d5f5 100644
--- a/modules/gui/qt/widgets/qml/PopupIconToolButton.qml
+++ b/modules/gui/qt/widgets/qml/PopupIconToolButton.qml
@@ -77,13 +77,6 @@ Widgets.IconToolButton {
         // Setting margins to >=0 makes it sure that this is satisfied.
         margins: MainCtx.windowExtendedMargin
 
-        modal: true
-
-        // NOTE: Popup.CloseOnPressOutside doesn't work with non-model Popup on Qt < 5.15.
-        closePolicy: (Popup.CloseOnPressOutside | Popup.CloseOnEscape)
-
-        Overlay.modal: null
-
         // Events
 
         onOpened: {