diff --git a/Telegram/SourceFiles/calls/calls_panel.cpp b/Telegram/SourceFiles/calls/calls_panel.cpp index 4b92ee0757..ea204a7704 100644 --- a/Telegram/SourceFiles/calls/calls_panel.cpp +++ b/Telegram/SourceFiles/calls/calls_panel.cpp @@ -215,7 +215,7 @@ void Panel::initWindow() { } const auto shown = _layerBg->topShownLayer(); return (!shown || !shown->geometry().contains(widgetPoint)) - ? (Flag::Move | Flag::FullScreen) + ? (Flag::Move | Flag::Menu | Flag::FullScreen) : Flag::None; }); diff --git a/Telegram/SourceFiles/calls/group/calls_group_panel.cpp b/Telegram/SourceFiles/calls/group/calls_group_panel.cpp index 84c3361310..927dba8f86 100644 --- a/Telegram/SourceFiles/calls/group/calls_group_panel.cpp +++ b/Telegram/SourceFiles/calls/group/calls_group_panel.cpp @@ -410,7 +410,7 @@ void Panel::initWindow() { } const auto shown = _layerBg->topShownLayer(); return (!shown || !shown->geometry().contains(widgetPoint)) - ? (Flag::Move | Flag::Maximize) + ? (Flag::Move | Flag::Menu | Flag::Maximize) : Flag::None; }); diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index c6a7e9c6e6..985bc03f9f 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -729,25 +729,27 @@ void OverlayWidget::orderWidgets() { void OverlayWidget::setupWindow() { _window->setBodyTitleArea([=](QPoint widgetPoint) { using Flag = Ui::WindowTitleHitTestFlag; - if (!_windowed - || !_widget->rect().contains(widgetPoint) + Ui::WindowTitleHitTestFlags result; + if (!_widget->rect().contains(widgetPoint) || _helper->skipTitleHitTest(widgetPoint)) { - return Flag::None | Flag(0); + return result; } - const auto inControls = (_over != Over::None) && (_over != Over::Video); + if (widgetPoint.y() <= st::mediaviewTitleButton.height) { + result |= Flag::Menu; + } + const auto inControls = ((_over != Over::None) && (_over != Over::Video)); if (inControls || (_streamed && _streamed->controls && _streamed->controls->dragging())) { - return Flag::None | Flag(0); } else if ((_w > _widget->width() || _h > _maxUsedHeight) && (widgetPoint.y() > st::mediaviewHeaderTop) && QRect(_x, _y, _w, _h).contains(widgetPoint)) { - return Flag::None | Flag(0); } else if (_stories && _stories->ignoreWindowMove(widgetPoint)) { - return Flag::None | Flag(0); + } else if (_windowed) { + result |= Flag::Move; } - return Flag::Move | Flag(0); + return result; }); _window->setAttribute(Qt::WA_NoSystemBackground, true); @@ -5926,8 +5928,11 @@ void OverlayWidget::handleMouseRelease( } bool OverlayWidget::handleContextMenu(std::optional position) { - if (position && !QRect(_x, _y, _w, _h).contains(*position)) { - return false; + if (position) { + if (!QRect(_x, _y, _w, _h).contains(*position) + || position->y() <= st::mediaviewTitleButton.height) { + return false; + } } _menu = base::make_unique_q( _window, diff --git a/Telegram/lib_ui b/Telegram/lib_ui index 45f3a33067..03f250aab2 160000 --- a/Telegram/lib_ui +++ b/Telegram/lib_ui @@ -1 +1 @@ -Subproject commit 45f3a330679b775f0f56bbea7b40f83ebd8f5639 +Subproject commit 03f250aab2e791bfb6a047bffa05273748518816