… | |
… | |
1967 | ++$self->{cursor} if $self->{cursor} < length $self->{text}; |
1967 | ++$self->{cursor} if $self->{cursor} < length $self->{text}; |
1968 | } elsif ($sym == CFPlus::SDLK_HOME) { |
1968 | } elsif ($sym == CFPlus::SDLK_HOME) { |
1969 | $self->{cursor} = 0; |
1969 | $self->{cursor} = 0; |
1970 | } elsif ($sym == CFPlus::SDLK_END) { |
1970 | } elsif ($sym == CFPlus::SDLK_END) { |
1971 | $self->{cursor} = length $text; |
1971 | $self->{cursor} = length $text; |
1972 | } elsif ($uni == 21) { # ctrl-u |
1972 | } elsif ($uni == 21) { # ctrl-u |
1973 | $text = ""; |
1973 | $text = ""; |
1974 | $self->{cursor} = 0; |
1974 | $self->{cursor} = 0; |
1975 | } elsif ($uni == 27) { |
1975 | } elsif ($uni == 27) { |
1976 | $self->emit ('escape'); |
1976 | $self->emit ('escape'); |
1977 | } elsif ($uni) { |
1977 | } elsif ($uni >= 0x20 || $uni == 0x0d) { |
1978 | substr $text, $self->{cursor}++, 0, chr $uni; |
1978 | substr $text, $self->{cursor}++, 0, chr $uni; |
1979 | } else { |
1979 | } else { |
1980 | return 0; |
1980 | return 0; |
1981 | } |
1981 | } |
1982 | |
1982 | |
… | |
… | |
2073 | sub invoke_key_down { |
2073 | sub invoke_key_down { |
2074 | my ($self, $ev) = @_; |
2074 | my ($self, $ev) = @_; |
2075 | |
2075 | |
2076 | my $sym = $ev->{sym}; |
2076 | my $sym = $ev->{sym}; |
2077 | |
2077 | |
2078 | if ($sym == 13) { |
2078 | if ($ev->{uni} == 0x0d || $sym == 13) { |
2079 | unshift @{$self->{history}}, |
2079 | unshift @{$self->{history}}, |
2080 | my $txt = $self->get_text; |
2080 | my $txt = $self->get_text; |
2081 | |
2081 | |
2082 | $self->{history_pointer} = -1; |
2082 | $self->{history_pointer} = -1; |
2083 | $self->{history_saveback} = ''; |
2083 | $self->{history_saveback} = ''; |
… | |
… | |
2104 | $self->set_text ($self->{history}->[$self->{history_pointer}]); |
2104 | $self->set_text ($self->{history}->[$self->{history_pointer}]); |
2105 | } else { |
2105 | } else { |
2106 | $self->set_text ($self->{history_saveback}); |
2106 | $self->set_text ($self->{history_saveback}); |
2107 | } |
2107 | } |
2108 | |
2108 | |
2109 | } elsif ($ev->{unicode} >= 0x20) { |
2109 | } else { |
2110 | return $self->SUPER::invoke_key_down ($ev) |
2110 | return $self->SUPER::invoke_key_down ($ev) |
2111 | } |
2111 | } |
2112 | |
2112 | |
2113 | 1 |
2113 | 1 |
2114 | } |
2114 | } |