diff --git a/Telegram/SourceFiles/ui/widgets/checkbox.cpp b/Telegram/SourceFiles/ui/widgets/checkbox.cpp index c02595168..66fd36534 100644 --- a/Telegram/SourceFiles/ui/widgets/checkbox.cpp +++ b/Telegram/SourceFiles/ui/widgets/checkbox.cpp @@ -408,11 +408,15 @@ void Checkbox::onStateChanged(State was, StateChangeSource source) { auto now = state(); if (!isDisabled() && (was & StateFlag::Over) && (now & StateFlag::Over)) { if ((was & StateFlag::Down) && !(now & StateFlag::Down)) { - setChecked(!checked()); + handlePress(); } } } +void Checkbox::handlePress() { + setChecked(!checked()); +} + int Checkbox::resizeGetHeight(int newWidth) { return _check->getSize().height(); } @@ -461,14 +465,9 @@ void Radiobutton::handleNewGroupValue(int value) { } } -void Radiobutton::onStateChanged(State was, StateChangeSource source) { - Checkbox::onStateChanged(was, source); - - auto now = state(); - if (!isDisabled() && (was & StateFlag::Over) && (now & StateFlag::Over)) { - if ((was & StateFlag::Down) && !(now & StateFlag::Down)) { - _group->setValue(_value); - } +void Radiobutton::handlePress() { + if (!checkbox()->checked()) { + checkbox()->setChecked(true); } } diff --git a/Telegram/SourceFiles/ui/widgets/checkbox.h b/Telegram/SourceFiles/ui/widgets/checkbox.h index 15195c8e5..442803d7c 100644 --- a/Telegram/SourceFiles/ui/widgets/checkbox.h +++ b/Telegram/SourceFiles/ui/widgets/checkbox.h @@ -148,6 +148,8 @@ protected: QImage prepareRippleMask() const override; QPoint prepareRippleStartPosition() const override; + virtual void handlePress(); + void updateCheck() { rtlupdate(_checkRect); } @@ -209,7 +211,7 @@ public: ~Radiobutton(); protected: - void onStateChanged(State was, StateChangeSource source) override; + void handlePress() override; private: // Hide the names from Checkbox.