diff --git a/Telegram/SourceFiles/core/application.cpp b/Telegram/SourceFiles/core/application.cpp index 1245070db..f5c295104 100644 --- a/Telegram/SourceFiles/core/application.cpp +++ b/Telegram/SourceFiles/core/application.cpp @@ -1490,10 +1490,7 @@ void Application::windowActivated(not_null window) { nowSession->updates().updateOnline(); } } - if (_mediaView - && !_mediaView->isHidden() - && !_mediaView->isMinimized() - && _mediaView->isFullScreen()) { + if (_mediaView && _mediaView->takeFocusFrom(now->widget())) { _mediaView->activate(); } } diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index b77b9b3c1..cf312a1a4 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -2741,6 +2741,13 @@ void OverlayWidget::setFocus() { _widget->setFocus(); } +bool OverlayWidget::takeFocusFrom(not_null window) const { + return _fullscreen + && !isHidden() + && !isMinimized() + && (_window->screen() == window->screen()); +} + void OverlayWidget::activate() { _window->raise(); _window->activateWindow(); diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.h b/Telegram/SourceFiles/media/view/media_view_overlay_widget.h index f947fff19..37c853a93 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.h +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.h @@ -88,6 +88,7 @@ public: void hide(); void setCursor(style::cursor cursor); void setFocus(); + [[nodiscard]] bool takeFocusFrom(not_null window) const; void activate(); void show(OpenRequest request);