1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-20 11:35:07 +00:00

LibGUI: Notify widgets when their enabled state changes.

This is done by dispatching a (synchronous) "EnabledChange" event that can
be picked up in change_event(). Use this event to kick widgets out of their
"being pressed"-type modes if the user is interacting with them while the
state is programmatically changed.
This commit is contained in:
Andreas Kling 2019-05-25 13:40:57 +02:00
parent e478a2fb0a
commit d12857fc36
9 changed files with 44 additions and 0 deletions

View file

@ -120,6 +120,15 @@ void GSlider::leave_event(CEvent& event)
GWidget::leave_event(event);
}
void GSlider::change_event(GEvent& event)
{
if (event.type() == GEvent::Type::EnabledChange) {
if (!is_enabled()))
m_dragging = false;
}
GWidget::change_event(event);
}
void GSlider::set_knob_hovered(bool hovered)
{
if (m_knob_hovered == hovered)