ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/rxvt-unicode/src/urxvt.pm
(Generate patch)

Comparing rxvt-unicode/src/urxvt.pm (file contents):
Revision 1.222 by root, Sat Jul 7 07:00:17 2012 UTC vs.
Revision 1.223 by root, Sat Jul 14 08:00:18 2012 UTC

881=cut 881=cut
882 882
883sub urxvt::extension::on_disable::DESTROY { 883sub urxvt::extension::on_disable::DESTROY {
884 my $disable = shift; 884 my $disable = shift;
885 885
886 my $self = delete $disable->{""}; 886 my $term = delete $disable->{""};
887 887
888 while (my ($htype, $id) = each %$disable) { 888 while (my ($htype, $id) = each %$disable) {
889 warn "disable hook $htype,$id\n";#d#
889 delete $self->{_hook}[$htype]{$id}; 890 delete $term->{_hook}[$htype]{$id};
890 $self->set_should_invoke ($htype, -1); 891 $term->set_should_invoke ($htype, -1);
891 } 892 }
892} 893}
893 894
894sub on { 895sub on {
895 my ($self, %hook) = @_; 896 my ($self, %hook) = @_;
896 897
898 my $term = $self->{term};
899
897 my %disable = ( "" => $self ); 900 my %disable = ( "" => $term );
898 901
899 while (my ($name, $cb) = each %hook) { 902 while (my ($name, $cb) = each %hook) {
900 my $htype = $HOOKTYPE{uc $name}; 903 my $htype = $HOOKTYPE{uc $name};
901 defined $htype 904 defined $htype
902 or Carp::croak "unsupported hook type '$name'"; 905 or Carp::croak "unsupported hook type '$name'";
903 906
904 my $id = $cb+0;
905
906 $self->set_should_invoke ($htype, +1); 907 $term->set_should_invoke ($htype, +1);
907 $disable{$htype} = $id; 908 $term->{_hook}[$htype]{ $disable{$htype} = $cb+0 }
908 $self->{_hook}[$htype]{$id} = sub { shift; $cb->($self, @_) }; # very ugly indeed 909 = sub { shift; $cb->($self, @_) }; # very ugly indeed
909 } 910 }
910 911
911 bless \%disable, "urxvt::extension::on_disable" 912 bless \%disable, "urxvt::extension::on_disable"
912} 913}
913 914

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines