X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fview%2Fview.cpp;h=5649bdc849e5609dea698a21bce41b8d60102e2e;hb=8c09273b13a10399e7f7d18dd446c2d13813e239;hp=b7ee331f165c175bdaaf1080561b2ae31650644e;hpb=925763b09cd26608cf4b38ce7b44800948a0e5aa;p=pulseview.git diff --git a/pv/view/view.cpp b/pv/view/view.cpp index b7ee331f..5649bdc8 100644 --- a/pv/view/view.cpp +++ b/pv/view/view.cpp @@ -1083,17 +1083,26 @@ void View::signals_changed() owner->remove_child_item(trace); } + // Remove any empty trace groups + for (shared_ptr group : list_by_type()) + if (group->child_items().size() == 0) + remove_child_item(group); + // Add and position the pending top levels items for (auto item : new_top_level_items) { + add_child_item(item); + // Position the item after the last item or at the top if there is none int offset = v_extents().second; + const pair extents = item->v_extents(); + + if (item->enabled()) + offset += -extents.first; - add_child_item(item); item->force_to_v_offset(offset); - const pair extents = item->v_extents(); if (item->enabled()) - offset += (extents.second - extents.first); + offset += extents.second; } update_layout();