diff options
Diffstat (limited to 'Libraries')
-rw-r--r-- | Libraries/LibGUI/TreeView.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/Libraries/LibGUI/TreeView.cpp b/Libraries/LibGUI/TreeView.cpp index c3bbda16f9..76b5022f04 100644 --- a/Libraries/LibGUI/TreeView.cpp +++ b/Libraries/LibGUI/TreeView.cpp @@ -110,13 +110,16 @@ void TreeView::doubleclick_event(MouseEvent& event) void TreeView::set_open_state_of_all_in_subtree(const ModelIndex& root, bool open) { - if (root.is_valid()) + if (root.is_valid()) { ensure_metadata_for_index(root).open = open; + if (model()->row_count(root)) { + if (on_toggle) + on_toggle(root, open); + } + } int row_count = model()->row_count(root); int column = model()->tree_column(); for (int row = 0; row < row_count; ++row) { - if (on_toggle) - on_toggle(root, open); auto index = model()->index(row, column, root); set_open_state_of_all_in_subtree(index, open); } |