--- deliantra/Deliantra-Client/DC/Item.pm 2009/01/11 23:45:52 1.14
+++ deliantra/Deliantra-Client/DC/Item.pm 2012/11/21 13:23:10 1.19
@@ -1,8 +1,6 @@
package DC::Item;
-use strict;
-use utf8;
-use Encode;
+use common::sense;
use Deliantra::Protocol::Constants;
@@ -14,7 +12,7 @@
my $desc =
$self->{nrof} < 2
? $self->{name}
- : "$self->{nrof} × $self->{name_pl}";
+ : "$self->{nrof} $self->{name_pl}";
$self->{flags} & F_OPEN
and $desc .= " (open)";
@@ -176,11 +174,13 @@
my $face_tooltip = "$desc\n\n$tooltip_std";
if (my $face = $self->{face_widget}) {
+ # already exists, so update if it changed
if ($face->{bg} != $bg) {
$face->{bg} = $bg;
$face->update;
}
+ $face->set_bg ($bg) if $face->{bg} != $bg;
$face->set_face ($self->{face}) if $face->{face} != $self->{face};
$face->set_anim ($self->{anim}) if $face->{anim} != $self->{anim};
$face->set_animspeed ($self->{animspeed}) if $face->{animspeed} != $self->{animspeed};
@@ -193,6 +193,7 @@
#);
$face->set_tooltip ($face_tooltip);
} else {
+ # new object, create new face
$self->{face_widget} = new DC::UI::Face
can_events => 1,
can_hover => 1,
@@ -218,7 +219,7 @@
$::CONN && $::CONN->ex ($self->{tag}, sub {
my ($long_desc) = @_;
- $long_desc = DC::Protocol::sanitise_xml ($long_desc);
+ $long_desc = DC::sanitise_cfxml ($long_desc);
$self->{long_desc} = $long_desc;
$widget->set_tooltip ("$long_desc\n\n$tooltip_std");
@@ -226,10 +227,10 @@
},
;
- $self->{desc_widget}{bg} = $bg;
- $self->{desc_widget}->set_text ($desc);
-
my $long_desc = $self->{long_desc} || $desc;
+
+ $self->{desc_widget}->set_bg ($bg) if $self->{desc_widget}{bg} != $bg;
+ $self->{desc_widget}->set_text ($desc);
$self->{desc_widget}->set_tooltip ("$long_desc\n\n$tooltip_std");
$self->{weight_widget} ||= new DC::UI::Label