--- M6502/Screen.pm 2007/08/02 16:01:16 98 +++ M6502/Screen.pm 2007/08/02 16:21:17 99 @@ -261,21 +261,15 @@ # don't take key, just pull event my $just_checking = shift; - if ( defined($pending_key) ) { - my $k = $pending_key; - undef $pending_key unless $just_checking; - return $k; - } - my $event = $self->event || confess "no event?"; - $event->poll || return; + $event->poll || return $pending_key; my $type = $event->type(); exit if ($type == SDL_QUIT); - my $k; + my $k = $pending_key; if ($type == SDL_KEYDOWN) { $k = $event->key_name(); @@ -289,9 +283,12 @@ } elsif ( $type == SDL_KEYUP ) { my $up = $event->key_name(); warn "SDL_KEYUP ($type) = '$up'\n"; + undef $pending_key; } - return $k; + warn "key_pressed = $pending_key\n" if $pending_key; + + return $pending_key; } =head2 loop