diff --git a/ui/click_handler.h b/ui/click_handler.h index b22576e..08151b5 100644 --- a/ui/click_handler.h +++ b/ui/click_handler.h @@ -114,16 +114,16 @@ protected: }; -class LambdaClickHandler : public ClickHandler { +class GenericClickHandler : public ClickHandler { public: - LambdaClickHandler(Fn handler) + GenericClickHandler(Fn handler) : _handler([handler = std::move(handler)](ClickContext) { handler(); }) { } - LambdaClickHandler(Fn handler) + GenericClickHandler(Fn handler) : _handler(std::move(handler)) { } - void onClick(ClickContext context) const override final { - if (context.button == Qt::LeftButton && _handler) { + void onClick(ClickContext context) const override { + if (_handler) { _handler(context); } } @@ -133,6 +133,18 @@ private: }; +class LambdaClickHandler : public GenericClickHandler { +public: + using GenericClickHandler::GenericClickHandler; + + void onClick(ClickContext context) const override final { + if (context.button == Qt::LeftButton) { + GenericClickHandler::onClick(std::move(context)); + } + } + +}; + void ActivateClickHandler( not_null guard, ClickHandlerPtr handler,