mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-01-01 22:29:13 +00:00
LibGUI: Show pressed state for Space and Return key events
Also allows the user to press Esc while the button is being pressed to cancel the button action.
This commit is contained in:
committed by
Linus Groh
parent
6fe7d4d7b8
commit
af72b5ec82
@@ -146,13 +146,29 @@ void AbstractButton::leave_event(Core::Event&)
|
||||
void AbstractButton::keydown_event(KeyEvent& event)
|
||||
{
|
||||
if (event.key() == KeyCode::Key_Return || event.key() == KeyCode::Key_Space) {
|
||||
click(event.modifiers());
|
||||
m_being_pressed = true;
|
||||
update();
|
||||
event.accept();
|
||||
return;
|
||||
} else if (m_being_pressed && event.key() == KeyCode::Key_Escape) {
|
||||
m_being_pressed = false;
|
||||
update();
|
||||
event.accept();
|
||||
return;
|
||||
}
|
||||
Widget::keydown_event(event);
|
||||
}
|
||||
|
||||
void AbstractButton::keyup_event(KeyEvent& event)
|
||||
{
|
||||
if (m_being_pressed && (event.key() == KeyCode::Key_Return || event.key() == KeyCode::Key_Space)) {
|
||||
click(event.modifiers());
|
||||
event.accept();
|
||||
return;
|
||||
}
|
||||
Widget::keyup_event(event);
|
||||
}
|
||||
|
||||
void AbstractButton::paint_text(Painter& painter, const Gfx::IntRect& rect, const Gfx::Font& font, Gfx::TextAlignment text_alignment)
|
||||
{
|
||||
auto clipped_rect = rect.intersected(this->rect());
|
||||
|
||||
Reference in New Issue
Block a user