mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 06:38:10 +00:00
LibGUI: Handle cursor keydown events in AbstractView
Move the basic movement keys (up/down/left/right/home/end/pgup/pgdn) up to AbstractView::keydown_event() and have it call the virtual move_cursor() which is then implemented by subclasses.
This commit is contained in:
parent
4ba12e9c23
commit
27687b1c6e
6 changed files with 53 additions and 120 deletions
|
@ -194,35 +194,17 @@ void ListView::keydown_event(KeyEvent& event)
|
|||
if (!model())
|
||||
return;
|
||||
|
||||
SelectionUpdate selection_update = SelectionUpdate::Set;
|
||||
|
||||
ModelIndex new_index;
|
||||
if (event.key() == KeyCode::Key_Return) {
|
||||
activate_selected();
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Up) {
|
||||
move_cursor(CursorMovement::Up, selection_update);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Down) {
|
||||
move_cursor(CursorMovement::Down, selection_update);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_PageUp) {
|
||||
move_cursor(CursorMovement::PageUp, selection_update);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_PageDown) {
|
||||
move_cursor(CursorMovement::PageDown, selection_update);
|
||||
return;
|
||||
}
|
||||
if (event.key() == KeyCode::Key_Escape) {
|
||||
if (on_escape_pressed)
|
||||
on_escape_pressed();
|
||||
return;
|
||||
}
|
||||
return AbstractView::keydown_event(event);
|
||||
AbstractView::keydown_event(event);
|
||||
}
|
||||
|
||||
void ListView::move_cursor_relative(int steps, SelectionUpdate selection_update)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue