diff options
Diffstat (limited to 'Rpmdrake/gui.pm')
-rw-r--r-- | Rpmdrake/gui.pm | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/Rpmdrake/gui.pm b/Rpmdrake/gui.pm index bc34612f..5ce4ce28 100644 --- a/Rpmdrake/gui.pm +++ b/Rpmdrake/gui.pm @@ -853,9 +853,11 @@ or you already installed all of them.")); add_node($_->[0], N("All")) foreach $sortmethods{flat}->(@elems); $tree->expand_row($tree_model->get_path($tree_model->get_iter_first), 0); } elsif ($::mode->[0] eq 'by_source') { - add_node($_->[0], $_->[1]) foreach $sortmethods{by_medium}->(map { + my @list = $sortmethods{by_medium}->(map { my $m = pkg2medium($pkgs->{$_->[0]}{pkg}, $urpm); [ $_->[0], $m->{name}, $m->{priority} ]; } @elems); + add_parent($_) foreach uniq(map { $_->[1] } @list); + add_node($_->[0], $_->[1]) foreach @list; } elsif ($mode eq 'by_presence') { add_node( $_->[0], $pkgs->{$_->[0]}{pkg}->flag_installed && !$pkgs->{$_->[0]}{pkg}->flag_skip |