From 513c8d1a652983c193ed51c7dc7287b21c9e7c49 Mon Sep 17 00:00:00 2001 From: John Preston Date: Wed, 26 May 2021 23:49:33 +0400 Subject: [PATCH] Fix PiP drag pausing the video. --- .../SourceFiles/media/view/media_view_pip.cpp | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Telegram/SourceFiles/media/view/media_view_pip.cpp b/Telegram/SourceFiles/media/view/media_view_pip.cpp index fad2347f8d..eda72352b5 100644 --- a/Telegram/SourceFiles/media/view/media_view_pip.cpp +++ b/Telegram/SourceFiles/media/view/media_view_pip.cpp @@ -1024,7 +1024,12 @@ void Pip::handleLeave() { } void Pip::handleMouseMove(QPoint position) { - _panel.handleMouseMove(position); + const auto weak = Ui::MakeWeak(_panel.widget()); + const auto guard = gsl::finally([&] { + if (weak) { + _panel.handleMouseMove(position); + } + }); setOverState(computeState(position)); seekUpdate(position); } @@ -1086,7 +1091,12 @@ void Pip::updateActiveState(OverState was) { } void Pip::handleMousePress(QPoint position, Qt::MouseButton button) { - _panel.handleMousePress(position, button); + const auto weak = Ui::MakeWeak(_panel.widget()); + const auto guard = gsl::finally([&] { + if (weak) { + _panel.handleMousePress(position, button); + } + }); if (button != Qt::LeftButton) { return; } @@ -1098,7 +1108,12 @@ void Pip::handleMousePress(QPoint position, Qt::MouseButton button) { } void Pip::handleMouseRelease(QPoint position, Qt::MouseButton button) { - _panel.handleMouseRelease(position, button); + const auto weak = Ui::MakeWeak(_panel.widget()); + const auto guard = gsl::finally([&] { + if (weak) { + _panel.handleMouseRelease(position, button); + } + }); if (button != Qt::LeftButton) { return; }