diff --git a/services/ui/control/event_listener.cpp b/services/ui/control/event_listener.cpp index fe148c9de884702330bc212802df016c25ab7968..a9a92b8dee8c7a18af1128e74c0a0447a6041422 100644 --- a/services/ui/control/event_listener.cpp +++ b/services/ui/control/event_listener.cpp @@ -80,9 +80,22 @@ void CallBackDecorator::CallbackWithGuard(Callback cb, OHOS::UIView &view) } } +bool LabelOnTouchListener::OnPress(OHOS::UIView &view, [[maybe_unused]] const OHOS::PressEvent &event) +{ + KeyListener::SetButtonPressed(true); + return true; +} + +bool LabelOnTouchListener::OnCancel(OHOS::UIView &view, [[maybe_unused]] const OHOS::CancelEvent &event) +{ + KeyListener::SetButtonPressed(false); + return true; +} + bool LabelOnTouchListener::OnRelease(OHOS::UIView &view, [[maybe_unused]] const OHOS::ReleaseEvent &event) { // wrap cb_ with CallBackDecorator, then call operator()() + KeyListener::SetButtonPressed(false); CallBackDecorator{cb_}(view, cb_.isAsync); return isConsumed_; } diff --git a/services/ui/control/event_listener.h b/services/ui/control/event_listener.h index 1fb01d969a58675258f6f4add438aa5ed8dff8cb..53a6f5eacd3a692e5a1dd5a190159c6a458a079d 100644 --- a/services/ui/control/event_listener.h +++ b/services/ui/control/event_listener.h @@ -50,6 +50,8 @@ public: LabelOnTouchListener(Callback cb, bool isConsumed) : cb_(cb), isConsumed_(isConsumed) {} ~LabelOnTouchListener() = default; + bool OnPress(OHOS::UIView &view, const OHOS::PressEvent &event) override; + bool OnCancel(OHOS::UIView &view, const OHOS::CancelEvent &event) override; bool OnRelease(OHOS::UIView &view, const OHOS::ReleaseEvent &event) override; private: