X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FLaTeX%2FTikZ%2FSet%2FMod.pm;h=f759b0de3ac1d805050440788d756fe1c3225185;hb=aba26c835113a0332c5480e99f86bfa67111de84;hp=82c5510673cb0098816feb7c51cfc2449a3f40d9;hpb=e8f0879ade07eed4f58cd52c0771f4e1ecc90b09;p=perl%2Fmodules%2FLaTeX-TikZ.git diff --git a/lib/LaTeX/TikZ/Set/Mod.pm b/lib/LaTeX/TikZ/Set/Mod.pm index 82c5510..f759b0d 100644 --- a/lib/LaTeX/TikZ/Set/Mod.pm +++ b/lib/LaTeX/TikZ/Set/Mod.pm @@ -69,7 +69,7 @@ sub add { } else { require LaTeX::TikZ::Set::Sequence; $set->_set(LaTeX::TikZ::Set::Sequence->new( - kids => $kid, + kids => [ $kid, @_ ], )); } @@ -88,14 +88,10 @@ MOD: for my $mod ($set->mods) { $has_layer = 1 if $ltml_tc->check($mod); my $tag = $mod->tag; - my @candidates; - if (defined $tag) { - my $old = $mods{$tag}; - @candidates = $old ? map $_->[0], @$old : (); - } else { - @candidates = values %mods; + my $old = $mods{$tag} || []; + for (@$old) { + next MOD if $_->[0]->cover($mod); } - $_->cover($mod) and next MOD for @candidates; push @{$mods{$tag}}, [ $mod, $last_mod++ ]; push @mods, $mod; } @@ -133,7 +129,7 @@ MOD: if (@mods) { $body = LaTeX::TikZ::Scope->new ->mod(map $_->apply($tikz), @mods) - ->body($body) + ->body($body); } $body;