From 4e090fcfda0f3e98062a867c8f4c2048a4734002 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Wed, 16 Mar 2022 01:08:41 +0400 Subject: [PATCH] Get media viewer screen by checking the screen by active window position QWindow::screen seem to be buggy on Windows and doesn't always follow window moves --- .../media/view/media_view_overlay_widget.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index 4cad4a25be..93c6bd4b19 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -481,7 +481,16 @@ void OverlayWidget::refreshLang() { void OverlayWidget::moveToScreen(bool inMove) { const auto widgetScreen = [&](auto &&widget) -> QScreen* { - if (auto handle = widget ? widget->windowHandle() : nullptr) { + if (!widget) { + return nullptr; + } + if (!Platform::IsWayland()) { + if (const auto screen = QGuiApplication::screenAt( + widget->geometry().center())) { + return screen; + } + } + if (const auto handle = widget->windowHandle()) { return handle->screen(); } return nullptr;