--- deliantra/Deliantra-Client/DC/MapWidget.pm 2006/06/02 09:02:49 1.46 +++ deliantra/Deliantra-Client/DC/MapWidget.pm 2006/06/02 22:13:47 1.47 @@ -73,18 +73,28 @@ $self->update; }; } + + 1 } sub button_up { my ($self, $ev, $x, $y) = @_; delete $self->{motion}; + + 1 } sub mouse_motion { my ($self, $ev, $x, $y) = @_; - $self->{motion}->($ev, $x, $y) if $self->{motion}; + if ($self->{motion}) { + $self->{motion}->($ev, $x, $y); + } else { + return 0; + } + + 1 } sub size_request { @@ -120,7 +130,7 @@ sub key_down { my ($self, $ev) = @_; - return unless $::CONN; + return 0 unless $::CONN; my $mod = $ev->{mod}; my $sym = $ev->{sym}; @@ -174,21 +184,31 @@ } elsif ((ord 'a') <= $uni && $uni <= (ord 'z')) { $self->{completer}->key_down ($ev); $self->{completer}->show; + } else { + return 0; } + + 1 } sub key_up { my ($self, $ev) = @_; + my $res = 0; my $mod = $ev->{mod}; my $sym = $ev->{sym}; if (!($mod & CFClient::KMOD_SHIFT) && delete $self->{shft}) { $::CONN->user_send ("fire_stop"); + $res = 1; } + if (!($mod & CFClient::KMOD_CTRL ) && delete $self->{ctrl}) { $::CONN->user_send ("run_stop"); + $res = 1; } + + $res } sub draw { @@ -492,7 +512,7 @@ sub key_down { my ($self, $ev) = @_; - $self->{entry}->key_down ($ev); + $self->{entry}->key_down ($ev) } sub update_labels {