DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit 3d1ea2546596f99fe0013e3b6db8478c35eaefff
parent 995b94a44b2a0c79fc9dcbb503752b188007718e
Author: falkTX <falktx@falktx.com>
Date:   Mon, 14 Jun 2021 20:59:27 +0100

ButtonEventHandler: Fix inverse logic and add a clear state call

Signed-off-by: falkTX <falktx@falktx.com>

Diffstat:
Mdgl/EventHandlers.hpp | 1+
Mdgl/src/EventHandlers.cpp | 15++++++++++-----
2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/dgl/EventHandlers.hpp b/dgl/EventHandlers.hpp @@ -59,6 +59,7 @@ public: protected: State getState() const noexcept; + void clearState() noexcept; virtual void stateChanged(State state, State oldState); diff --git a/dgl/src/EventHandlers.cpp b/dgl/src/EventHandlers.cpp @@ -60,13 +60,13 @@ struct ButtonEventHandler::PrivateData { // cursor was moved outside the button bounds, ignore click if (! widget->contains(ev.pos)) { - self->stateChanged(static_cast<State>(state2), static_cast<State>(state)); + self->stateChanged(static_cast<State>(state), static_cast<State>(state2)); widget->repaint(); return true; } // still on bounds, register click - self->stateChanged(static_cast<State>(state2), static_cast<State>(state)); + self->stateChanged(static_cast<State>(state), static_cast<State>(state2)); widget->repaint(); if (checkable) @@ -84,7 +84,7 @@ struct ButtonEventHandler::PrivateData { const int state2 = state; button = static_cast<int>(ev.button); state |= kButtonStateActive; - self->stateChanged(static_cast<State>(state2), static_cast<State>(state)); + self->stateChanged(static_cast<State>(state), static_cast<State>(state2)); widget->repaint(); return true; } @@ -111,7 +111,7 @@ struct ButtonEventHandler::PrivateData { const int state2 = state; state |= kButtonStateHover; ret = widget->contains(oldMotionPos); - self->stateChanged(static_cast<State>(state2), static_cast<State>(state)); + self->stateChanged(static_cast<State>(state), static_cast<State>(state2)); widget->repaint(); } } @@ -123,7 +123,7 @@ struct ButtonEventHandler::PrivateData { const int state2 = state; state &= ~kButtonStateHover; ret = widget->contains(oldMotionPos); - self->stateChanged(static_cast<State>(state2), static_cast<State>(state)); + self->stateChanged(static_cast<State>(state), static_cast<State>(state2)); widget->repaint(); } } @@ -223,6 +223,11 @@ ButtonEventHandler::State ButtonEventHandler::getState() const noexcept return static_cast<State>(pData->state); } +void ButtonEventHandler::clearState() noexcept +{ + pData->state = kButtonStateDefault; +} + void ButtonEventHandler::stateChanged(State, State) { }