--- deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/23 22:35:16 1.41 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/23 23:54:30 1.42 @@ -814,6 +814,8 @@ sub feed { my ($self, $data) = @_; + Scalar::Util::weaken $self; + my ($type, $msg) = split / /, $data, 2; if ($type eq "msg") { @@ -826,15 +828,21 @@ $msg =~ s{ ($match) }{ + my $kw = $1; + push @link, new CFClient::UI::Label - markup => "$1", + markup => "$kw", can_hover => 1, - can_events => 1; + can_events => 1, + on_button_up => sub { + $self->send ($kw); + }; chr 0xfffc }giex; $self->{textview}->add_paragraph ([1, 1, 1, 1], [$msg, @link]); + $self->{textview}->scroll_to_bottom; $self->update_options; } else { $self->destroy; @@ -848,6 +856,7 @@ $self->{conn}->send ("ext npc_dialog_tell $self->{token} $msg"); $self->{textview}->add_paragraph ([1, 1, 0, 1], "\n" . CFClient::UI::Label::escape $msg); + $self->{textview}->scroll_to_bottom; } sub destroy {