--- deliantra/Deliantra-Client/DC/UI.pm 2006/12/08 14:59:54 1.358 +++ deliantra/Deliantra-Client/DC/UI.pm 2006/12/08 15:07:08 1.359 @@ -1974,7 +1974,7 @@ $self->{cursor} = 0; } elsif ($uni == 27) { $self->emit ('escape'); - } elsif ($uni >= 0x20) { + } elsif ($uni) { substr $text, $self->{cursor}++, 0, chr $uni; } else { return 0; @@ -2106,7 +2106,7 @@ $self->set_text ($self->{history_saveback}); } - } else { + } elsif ($ev->{unicode} >= 0x20) { return $self->SUPER::invoke_key_down ($ev) } @@ -2126,14 +2126,14 @@ my ($y, $x) = $self->{layout}->index_to_line_x ($self->{cursor}); - do { - if (defined (my $index = $self->{layout}->line_x_to_index ($y + $dy, $x))) { - $self->{cursor} = $index; - delete $self->{cur_h}; - $self->update; - return; - } - } while --$x >= 0; + $y += $dy; + + if (defined (my $index = $self->{layout}->line_x_to_index ($y, $x))) { + $self->{cursor} = $index; + delete $self->{cur_h}; + $self->update; + return; + } } sub invoke_key_down {