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:
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)
{
}