/[VRac]/Screen.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /Screen.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 98 by dpavlin, Thu Aug 2 16:01:16 2007 UTC revision 101 by dpavlin, Thu Aug 2 17:15:07 2007 UTC
# Line 259  sub key_pressed { Line 259  sub key_pressed {
259          my $self = shift;          my $self = shift;
260    
261          # don't take key, just pull event          # don't take key, just pull event
262          my $just_checking = shift;          my $just_checking = shift || 0;
   
         if ( defined($pending_key) ) {  
                 my $k = $pending_key;  
                 undef $pending_key unless $just_checking;  
                 return $k;  
         }  
263    
264          my $event = $self->event || confess "no event?";          my $event = $self->event || confess "no event?";
265    
266          $event->poll || return;          $event->poll || return $pending_key;
267    
268          my $type = $event->type();          my $type = $event->type();
269    
270          exit if ($type == SDL_QUIT);          exit if ($type == SDL_QUIT);
271    
272          my $k;          my $k = $pending_key;
273    
274          if ($type == SDL_KEYDOWN) {          if ($type == SDL_KEYDOWN) {
275                  $k = $event->key_name();                  $k = $event->key_name();
276                  if ( $k eq 'escape' ) {                  if ( $k eq 'escape' ) {
277                          $run_for = $self->cli;                          $run_for = $self->cli;
278                          warn "will check event loop every $run_for cycles\n";                          warn "will check event loop every $run_for cycles\n";
279                            $pending_key = '~';
280                  } else {                  } else {
281                          warn "SDL_KEYDOWN ($type) = '$k'\n";                          warn "SDL_KEYDOWN ($type) = '$k'", $just_checking ? ' fake' : '', "\n";
282                          $pending_key = $k if $just_checking;                          $pending_key = $k;
283                  }                  }
284          } elsif ( $type == SDL_KEYUP ) {          } elsif ( $type == SDL_KEYUP ) {
285                  my $up = $event->key_name();                  my $up = $event->key_name();
286                  warn "SDL_KEYUP ($type) = '$up'\n";                  warn "SDL_KEYUP ($type) = '$up'", $just_checking ? ' fake' : '', "\n";
287                    undef $pending_key;
288          }          }
289    
290          return $k;          warn "key_pressed = $pending_key\n" if $pending_key;
291    
292            return $pending_key;
293  }  }
294    
295  =head2 loop  =head2 loop

Legend:
Removed from v.98  
changed lines
  Added in v.101

  ViewVC Help
Powered by ViewVC 1.1.26