49 |
); |
); |
50 |
#$app->grab_input( SDL_GRAB_QUERY ); |
#$app->grab_input( SDL_GRAB_QUERY ); |
51 |
$app->grab_input( SDL_GRAB_OFF ); |
$app->grab_input( SDL_GRAB_OFF ); |
52 |
|
$app->title( ref($self) ); |
53 |
|
|
54 |
$self->app( $app ); |
$self->app( $app ); |
55 |
|
|
237 |
|
|
238 |
my $event = $self->event || confess "no event?"; |
my $event = $self->event || confess "no event?"; |
239 |
|
|
240 |
$event->poll || return $pending_key; |
if ( ! $event->poll ) { |
241 |
|
return $pending_key unless $self->can('session_event'); |
242 |
|
if ( my $h = $self->session_event('key_pressed') ) { |
243 |
|
my ( $key, $state ) = %$h; |
244 |
|
if ( $state ) { |
245 |
|
$pending_key = $key; |
246 |
|
$key_down->{$key}++; |
247 |
|
} else { |
248 |
|
undef $pending_key; |
249 |
|
$key_down->{$key} = 0; |
250 |
|
} |
251 |
|
} |
252 |
|
return $pending_key; |
253 |
|
} |
254 |
|
|
255 |
my $type = $event->type(); |
my $type = $event->type(); |
256 |
|
|
268 |
} else { |
} else { |
269 |
warn "SDL_KEYDOWN ($type) = '$k'", $just_checking ? ' fake' : '', "\n"; |
warn "SDL_KEYDOWN ($type) = '$k'", $just_checking ? ' fake' : '', "\n"; |
270 |
$pending_key = $k; |
$pending_key = $k; |
271 |
|
$self->record_session('key_pressed', { $k => 1 }); |
272 |
} |
} |
273 |
} elsif ( $type == SDL_KEYUP ) { |
} elsif ( $type == SDL_KEYUP ) { |
274 |
my $up = $event->key_name(); |
my $up = $event->key_name(); |
|
$key_down->{$up} = 0; |
|
275 |
warn "SDL_KEYUP ($type) = '$up'", $just_checking ? ' fake' : '', "\n"; |
warn "SDL_KEYUP ($type) = '$up'", $just_checking ? ' fake' : '', "\n"; |
276 |
|
$self->record_session('key_pressed', { $up => 0 }); |
277 |
|
$key_down->{$up} = 0; |
278 |
undef $pending_key; |
undef $pending_key; |
279 |
} |
} |
280 |
|
|
281 |
warn "key_pressed = $pending_key\n" if $pending_key; |
warn "key_pressed = $pending_key\n" if ( $pending_key ); |
282 |
|
|
283 |
return $pending_key; |
return $pending_key; |
284 |
} |
} |
324 |
under the same terms as Perl itself. |
under the same terms as Perl itself. |
325 |
|
|
326 |
=cut |
=cut |
327 |
|
|
328 |
1; |
1; |