From 4695ccfdb851c0b918b598dec511c4d026dc58bf Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Sat, 30 Jan 2021 16:25:40 +0300 Subject: [PATCH] Fixed mouse hiding in OverlayWidget when menu of controls is displayed. --- Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp | 1 + .../SourceFiles/media/view/media_view_playback_controls.cpp | 4 ++++ .../SourceFiles/media/view/media_view_playback_controls.h | 1 + 3 files changed, 6 insertions(+) diff --git a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp index f2088909c..7f66e2edb 100644 --- a/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp +++ b/Telegram/SourceFiles/media/view/media_view_overlay_widget.cpp @@ -1274,6 +1274,7 @@ void OverlayWidget::activateControls() { void OverlayWidget::onHideControls(bool force) { if (!force) { if (!_dropdown->isHidden() + || (_streamed && _streamed->controls.hasMenu()) || _menu || _mousePressed || (_fullScreenVideo diff --git a/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp b/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp index e850b8555..9d873f804 100644 --- a/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp +++ b/Telegram/SourceFiles/media/view/media_view_playback_controls.cpp @@ -568,6 +568,10 @@ void PlaybackControls::mousePressEvent(QMouseEvent *e) { e->accept(); // Don't pass event to the Media::View::OverlayWidget. } +bool PlaybackControls::hasMenu() const { + return _menu != nullptr; +} + PlaybackControls::~PlaybackControls() = default; } // namespace View diff --git a/Telegram/SourceFiles/media/view/media_view_playback_controls.h b/Telegram/SourceFiles/media/view/media_view_playback_controls.h index 0b5b71c13..6128f2a63 100644 --- a/Telegram/SourceFiles/media/view/media_view_playback_controls.h +++ b/Telegram/SourceFiles/media/view/media_view_playback_controls.h @@ -57,6 +57,7 @@ public: void updatePlayback(const Player::TrackState &state); void setLoadingProgress(int ready, int total); void setInFullScreen(bool inFullScreen); + [[nodiscard]] bool hasMenu() const; ~PlaybackControls();