mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 12:38:12 +00:00
KeyboardMapper: Show multiple pressed keys at once
When depressing a key, KeyboardMapperWidget::keydown_event() will now update only the pressed state of the button associated with the specific key, instead of also setting the pressed state of the all the buttons to false. This makes it possible to highlight multiple pressed keys at once and makes the code more consistent; the implementation of keyup_event implied that this was a feature of the program.
This commit is contained in:
parent
a1531dba91
commit
c4b2efd95e
1 changed files with 10 additions and 7 deletions
|
@ -215,21 +215,24 @@ void KeyboardMapperWidget::save_to_file(StringView filename)
|
|||
void KeyboardMapperWidget::keydown_event(GUI::KeyEvent& event)
|
||||
{
|
||||
for (int i = 0; i < KEY_COUNT; i++) {
|
||||
if (keys[i].scancode != event.scancode())
|
||||
continue;
|
||||
auto& tmp_button = m_keys.at(i);
|
||||
tmp_button->set_pressed(keys[i].scancode == event.scancode());
|
||||
tmp_button->set_pressed(true);
|
||||
tmp_button->update();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void KeyboardMapperWidget::keyup_event(GUI::KeyEvent& event)
|
||||
{
|
||||
for (int i = 0; i < KEY_COUNT; i++) {
|
||||
if (keys[i].scancode == event.scancode()) {
|
||||
auto& tmp_button = m_keys.at(i);
|
||||
tmp_button->set_pressed(false);
|
||||
tmp_button->update();
|
||||
break;
|
||||
}
|
||||
if (keys[i].scancode != event.scancode())
|
||||
continue;
|
||||
auto& tmp_button = m_keys.at(i);
|
||||
tmp_button->set_pressed(false);
|
||||
tmp_button->update();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue