--- deliantra/Deliantra-Client/DC/MapWidget.pm 2006/04/22 21:47:45 1.8 +++ deliantra/Deliantra-Client/DC/MapWidget.pm 2006/04/24 03:19:42 1.10 @@ -82,11 +82,13 @@ glNewList $self->{list}; if ($::MAP) { - my $sw = int $::WIDTH / 32; - my $sh = int $::HEIGHT / 32; + my $sw = int $::WIDTH / (32 * $::CFG->{map_scale}); + my $sh = int $::HEIGHT / (32 * $::CFG->{map_scale}); - my $sx = $::CFG->{map_shift_x}; my $sx0 = $sx & 31; $sx = ($sx - $sx0) / 32; - my $sy = $::CFG->{map_shift_y}; my $sy0 = $sy & 31; $sy = ($sy - $sy0) / 32; + glScale $::CFG->{map_scale}, $::CFG->{map_scale}; + + my $sx = $::CFG->{map_shift_x} / $::CFG->{map_scale}; my $sx0 = $sx & 31; $sx = ($sx - $sx0) / 32; + my $sy = $::CFG->{map_shift_y} / $::CFG->{map_scale}; my $sy0 = $sy & 31; $sy = ($sy - $sy0) / 32; glTranslate $sx0 - 32, $sy0 - 32, 0; @@ -351,10 +353,13 @@ } } elsif ($ev->{sym} == 27) { $self->emit ("close"); - } elsif ($ev->{unicode}) { + } elsif ((chr $ev->{unicode}) =~ /^[[:alpha:]]$/) { $self->{search} .= chr $ev->{unicode}; $self->update_labels; } + + length $self->{search} + or $self->emit ("close"); } 1