From 75a782cced2f1cf95acf4126b53a5a539fe4ddc7 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Fri, 2 Apr 2021 15:32:08 +0400 Subject: [PATCH] Workaround force setting of WM_TRANSIENT_HINT in Qt's xcb backend --- Telegram/SourceFiles/media/view/media_view_pip.cpp | 12 +++++++++++- Telegram/SourceFiles/media/view/media_view_pip.h | 2 ++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/media/view/media_view_pip.cpp b/Telegram/SourceFiles/media/view/media_view_pip.cpp index 7bdbfcad6d..f224f80455 100644 --- a/Telegram/SourceFiles/media/view/media_view_pip.cpp +++ b/Telegram/SourceFiles/media/view/media_view_pip.cpp @@ -387,7 +387,17 @@ PipPanel::PipPanel( Ui::Platform::InitOnTopPanel(this); setMouseTracking(true); resize(0, 0); - show(); + hide(); + createWinId(); +} + +void PipPanel::setVisibleHook(bool visible) { + PipParent::setVisibleHook(visible); + + // workaround Qt's forced transient parent + if (visible) { + Ui::Platform::ClearTransientParent(this); + } } void PipPanel::setAspectRatio(QSize ratio) { diff --git a/Telegram/SourceFiles/media/view/media_view_pip.h b/Telegram/SourceFiles/media/view/media_view_pip.h index 544d6f9ed7..a4a5f80e56 100644 --- a/Telegram/SourceFiles/media/view/media_view_pip.h +++ b/Telegram/SourceFiles/media/view/media_view_pip.h @@ -78,6 +78,8 @@ protected: void mouseReleaseEvent(QMouseEvent *e) override; void mouseMoveEvent(QMouseEvent *e) override; + void setVisibleHook(bool visible) override; + private: void setPositionDefault(); void setPositionOnScreen(Position position, QRect available);