--- deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/19 06:50:45 1.39 +++ deliantra/Deliantra-Client/DC/Protocol.pm 2006/06/23 22:35:16 1.41 @@ -414,8 +414,9 @@ $text =~ s/\[b\](.*?)\[\/b\]/\1<\/b>/g; $text =~ s/\[color=(.*?)\](.*?)\[\/color\]/\2<\/span>/g; - $self->{logview}->add_paragraph ($color[$color], - join "\n", map "$time $_", split /\n/, $text); + $self->{logview}->add_paragraph ($color[$color], $_) + for map "$time $_", split /\n/, $text; + $self->{logview}->scroll_to_bottom; $self->{statusbox}->add ($text, group => $text, @@ -819,11 +820,21 @@ my ($msg, @kw) = split /\x00/, $msg; $self->{kw}{$_} = 1 for @kw; - $msg = CFClient::UI::Label::escape $msg; + $msg = "\n" . CFClient::UI::Label::escape $msg; my $match = join "|", map "\\b\Q$_\E\\b", sort { (length $b) <=> (length $a) } keys %{ $self->{kw} }; - $msg =~ s/($match)/$1<\/span>/gi; # underline when http-ready, huh. + my @link; + $msg =~ s{ + ($match) + }{ + push @link, new CFClient::UI::Label + markup => "$1", + can_hover => 1, + can_events => 1; + + chr 0xfffc + }giex; - $self->{textview}->add_paragraph ([1, 1, 1, 1], "\n$msg"); + $self->{textview}->add_paragraph ([1, 1, 1, 1], [$msg, @link]); $self->update_options; } else { $self->destroy;