From c60b9cfa4d48db7c0e7bff78845d071ee4d828e0 Mon Sep 17 00:00:00 2001 From: John Preston Date: Thu, 25 Jun 2020 14:28:02 +0400 Subject: [PATCH] Allow PiP from another account. --- .../media/view/media_view_overlay_widget.cpp | 9 ++++++++- Telegram/SourceFiles/media/view/media_view_pip.cpp | 11 +++++++++++ 2 files changed, 19 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 40e3f6f90b..2a617a1dce 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -1069,7 +1069,6 @@ void OverlayWidget::clearSession() { _from = nullptr; _fromName = QString(); assignMediaPointer(nullptr); - _pip = nullptr; _fullScreenVideo = false; _caption.clear(); _sharedMedia = nullptr; @@ -1209,6 +1208,7 @@ void OverlayWidget::onToMessage() { } if (const auto item = _session->data().message(_msgid)) { close(); + Core::App().domain().activate(&_session->account()); Ui::showPeerHistoryAtItem(item); } } @@ -1449,6 +1449,7 @@ void OverlayWidget::onDelete() { return false; }; + Core::App().domain().activate(&_session->account()); const auto &active = _session->windows(); if (active.empty()) { return; @@ -3845,6 +3846,11 @@ void OverlayWidget::mouseReleaseEvent(QMouseEvent *e) { showSaveMsgFile(); return; } + // There may be a mention / hashtag / bot command link. + // For now activate account for all activated links. + if (_session) { + Core::App().domain().activate(&_session->account()); + } ActivateClickHandler(this, activated, e->button()); return; } @@ -3852,6 +3858,7 @@ void OverlayWidget::mouseReleaseEvent(QMouseEvent *e) { if (_over == OverName && _down == OverName) { if (_from) { close(); + Core::App().domain().activate(&_from->account()); Ui::showPeerProfile(_from); } } else if (_over == OverDate && _down == OverDate) { diff --git a/Telegram/SourceFiles/media/view/media_view_pip.cpp b/Telegram/SourceFiles/media/view/media_view_pip.cpp index c129c2616e..e342828dee 100644 --- a/Telegram/SourceFiles/media/view/media_view_pip.cpp +++ b/Telegram/SourceFiles/media/view/media_view_pip.cpp @@ -17,6 +17,8 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/data_file_origin.h" #include "data/data_session.h" #include "data/data_media_rotation.h" +#include "main/main_account.h" +#include "main/main_session.h" #include "core/application.h" #include "base/platform/base_platform_info.h" #include "ui/platform/ui_platform_utility.h" @@ -875,6 +877,15 @@ Pip::Pip( setupPanel(); setupButtons(); setupStreaming(); + + _data->session().account().sessionChanges( + ) | rpl::start_with_next_done([=](Main::Session *session) { + if (!session) { + _destroy(); + } + }, [=] { + _destroy(); + }, _panel.lifetime()); } Pip::~Pip() = default;