mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-04-22 04:25:13 +00:00
LibGUI: Handle "Return" key events
I kept on trying to use the enter key to navigate a tree view, when only left and right arrow keys are used for this. Now also suport the return key, is used as a toggle to open a tree.
This commit is contained in:
parent
6697513d30
commit
22d1961c9a
Notes:
sideshowbarker
2024-07-19 10:00:00 +09:00
Author: https://github.com/shannonbooth Commit: https://github.com/SerenityOS/serenity/commit/22d1961c9a9 Pull-request: https://github.com/SerenityOS/serenity/pull/1091
1 changed files with 22 additions and 12 deletions
|
@ -376,30 +376,40 @@ void GTreeView::keydown_event(GKeyEvent& event)
|
|||
selection().set(found_index);
|
||||
return;
|
||||
}
|
||||
|
||||
auto open_tree_node = [&](bool open, MetadataForIndex& metadata) {
|
||||
metadata.open = open;
|
||||
update_column_sizes();
|
||||
update_content_size();
|
||||
update();
|
||||
};
|
||||
|
||||
if (event.key() == KeyCode::Key_Left) {
|
||||
if (cursor_index.is_valid() && model()->row_count(cursor_index)) {
|
||||
auto& metadata = ensure_metadata_for_index(cursor_index);
|
||||
if (metadata.open) {
|
||||
metadata.open = false;
|
||||
update_column_sizes();
|
||||
update_content_size();
|
||||
update();
|
||||
}
|
||||
if (metadata.open)
|
||||
open_tree_node(false, metadata);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (event.key() == KeyCode::Key_Right) {
|
||||
if (cursor_index.is_valid() && model()->row_count(cursor_index)) {
|
||||
auto& metadata = ensure_metadata_for_index(cursor_index);
|
||||
if (!metadata.open) {
|
||||
metadata.open = true;
|
||||
update_column_sizes();
|
||||
update_content_size();
|
||||
update();
|
||||
}
|
||||
if (!metadata.open)
|
||||
open_tree_node(true, metadata);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (event.key() == KeyCode::Key_Return) {
|
||||
if (cursor_index.is_valid() && model()->row_count(cursor_index)) {
|
||||
auto& metadata = ensure_metadata_for_index(cursor_index);
|
||||
open_tree_node(!metadata.open, metadata);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int GTreeView::item_count() const
|
||||
|
|
Loading…
Add table
Reference in a new issue