diff --git a/Telegram/SourceFiles/history/history_top_bar_widget.cpp b/Telegram/SourceFiles/history/history_top_bar_widget.cpp index 2ea80a1d35..0b6b30fe81 100644 --- a/Telegram/SourceFiles/history/history_top_bar_widget.cpp +++ b/Telegram/SourceFiles/history/history_top_bar_widget.cpp @@ -380,6 +380,7 @@ void HistoryTopBarWidget::backClicked() { void HistoryTopBarWidget::setHistoryPeer(PeerData *historyPeer) { if (_historyPeer != historyPeer) { _historyPeer = historyPeer; + _back->clearState(); update(); updateUnreadBadge(); diff --git a/Telegram/SourceFiles/ui/abstract_button.h b/Telegram/SourceFiles/ui/abstract_button.h index 0bf184cb41..d1c63f9bdb 100644 --- a/Telegram/SourceFiles/ui/abstract_button.h +++ b/Telegram/SourceFiles/ui/abstract_button.h @@ -37,7 +37,7 @@ public: } void setDisabled(bool disabled = true); - void clearState(); + virtual void clearState(); bool isOver() const { return _state & StateFlag::Over; } diff --git a/Telegram/SourceFiles/ui/widgets/buttons.cpp b/Telegram/SourceFiles/ui/widgets/buttons.cpp index 2a45b63648..7a581f363f 100644 --- a/Telegram/SourceFiles/ui/widgets/buttons.cpp +++ b/Telegram/SourceFiles/ui/widgets/buttons.cpp @@ -63,10 +63,19 @@ void LinkButton::onStateChanged(State was, StateChangeSource source) { update(); } -RippleButton::RippleButton(QWidget *parent, const style::RippleAnimation &st) : AbstractButton(parent) +RippleButton::RippleButton(QWidget *parent, const style::RippleAnimation &st) +: AbstractButton(parent) , _st(st) { } +void RippleButton::clearState() { + AbstractButton::clearState(); + if (_ripple) { + _ripple.reset(); + update(); + } +} + void RippleButton::setForceRippled( bool rippled, anim::type animated) { @@ -134,10 +143,6 @@ QPoint RippleButton::prepareRippleStartPosition() const { return mapFromGlobal(QCursor::pos()); } -void RippleButton::resetRipples() { - _ripple.reset(); -} - RippleButton::~RippleButton() = default; FlatButton::FlatButton(QWidget *parent, const QString &text, const style::FlatButton &st) : RippleButton(parent, st.ripple) diff --git a/Telegram/SourceFiles/ui/widgets/buttons.h b/Telegram/SourceFiles/ui/widgets/buttons.h index 5fd0f3bb7e..2e5fcbc79f 100644 --- a/Telegram/SourceFiles/ui/widgets/buttons.h +++ b/Telegram/SourceFiles/ui/widgets/buttons.h @@ -65,6 +65,8 @@ public: return QPoint(-0x3FFFFFFF, -0x3FFFFFFF); } + void clearState() override; + ~RippleButton(); protected: @@ -74,7 +76,6 @@ protected: virtual QImage prepareRippleMask() const; virtual QPoint prepareRippleStartPosition() const; - void resetRipples(); private: void ensureRipple();