From 7ac849ab12c766149206a84fd2bd150f4dac8538 Mon Sep 17 00:00:00 2001 From: John Preston <johnprestonmail@gmail.com> Date: Tue, 4 Feb 2025 20:16:25 +0400 Subject: [PATCH] Don't update mouse in non-active window. --- Telegram/SourceFiles/history/history_inner_widget.cpp | 6 +++++- Telegram/SourceFiles/history/history_inner_widget.h | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/Telegram/SourceFiles/history/history_inner_widget.cpp b/Telegram/SourceFiles/history/history_inner_widget.cpp index 066e19453..d5fbdb639 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.cpp +++ b/Telegram/SourceFiles/history/history_inner_widget.cpp @@ -1577,6 +1577,7 @@ void HistoryInner::mouseMoveEvent(QMouseEvent *e) { mouseReleaseEvent(e); } if (reallyMoved) { + _mouseActive = true; lastGlobalPosition = e->globalPos(); if (!buttonsPressed || (_scrollDateLink && ClickHandler::getPressed() == _scrollDateLink)) { keepScrollDateForNow(); @@ -1623,6 +1624,7 @@ void HistoryInner::mousePressEvent(QMouseEvent *e) { e->accept(); return; // ignore mouse press, that was hiding context menu } + _mouseActive = true; mouseActionStart(e->globalPos(), e->button()); } @@ -3526,6 +3528,7 @@ void HistoryInner::setShownPinned(HistoryItem *item) { } void HistoryInner::enterEventHook(QEnterEvent *e) { + _mouseActive = true; mouseActionUpdate(QCursor::pos()); return TWidget::enterEventHook(e); } @@ -3542,6 +3545,7 @@ void HistoryInner::leaveEventHook(QEvent *e) { _cursor = style::cur_default; setCursor(_cursor); } + _mouseActive = false; return TWidget::leaveEventHook(e); } @@ -3892,7 +3896,7 @@ auto HistoryInner::reactionButtonParameters( } void HistoryInner::mouseActionUpdate() { - if (hasPendingResizedItems()) { + if (hasPendingResizedItems() || !_mouseActive) { return; } diff --git a/Telegram/SourceFiles/history/history_inner_widget.h b/Telegram/SourceFiles/history/history_inner_widget.h index 356609a26..4c06a0979 100644 --- a/Telegram/SourceFiles/history/history_inner_widget.h +++ b/Telegram/SourceFiles/history/history_inner_widget.h @@ -499,6 +499,7 @@ private: HistoryItem *_dragStateItem = nullptr; CursorState _mouseCursorState = CursorState(); uint16 _mouseTextSymbol = 0; + bool _mouseActive = false; bool _dragStateUserpic = false; bool _pressWasInactive = false; bool _recountedAfterPendingResizedItems = false;