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: {