mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 04:17:35 +00:00
LibGUI: Hold down Alt when clicking TreeView to expand full subtree
On other operating systems, if you hold down Alt when you click to expand part of a tree, it expands all of the children of the node you clicked. This commit makes our TreeView act the same way :)
This commit is contained in:
parent
7809cc6557
commit
22d54cd446
2 changed files with 28 additions and 0 deletions
|
@ -430,6 +430,33 @@ void TreeView::did_update_selection()
|
|||
activate(index);
|
||||
}
|
||||
|
||||
void TreeView::mousedown_event(MouseEvent& event)
|
||||
{
|
||||
if (!model())
|
||||
return AbstractView::mousedown_event(event);
|
||||
|
||||
if (event.button() != MouseButton::Primary)
|
||||
return AbstractView::mousedown_event(event);
|
||||
|
||||
bool is_toggle;
|
||||
auto index = index_at_event_position(event.position(), is_toggle);
|
||||
|
||||
if (index.is_valid() && is_toggle && model()->row_count(index)) {
|
||||
if (event.alt()) {
|
||||
if (is_toggled(index)) {
|
||||
collapse_tree(index);
|
||||
} else {
|
||||
expand_tree(index);
|
||||
}
|
||||
return;
|
||||
}
|
||||
toggle_index(index);
|
||||
return;
|
||||
}
|
||||
|
||||
AbstractView::mousedown_event(event);
|
||||
}
|
||||
|
||||
void TreeView::keydown_event(KeyEvent& event)
|
||||
{
|
||||
if (!model())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue