/[rdesktop]/sourceforge.net/trunk/rdesktop/xkeymap.c
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 /sourceforge.net/trunk/rdesktop/xkeymap.c

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

revision 466 by astrand, Mon Sep 8 08:27:57 2003 UTC revision 470 by astrand, Mon Sep 15 08:03:30 2003 UTC
# Line 450  get_ksname(uint32 keysym) Line 450  get_ksname(uint32 keysym)
450          return ksname;          return ksname;
451  }  }
452    
453    static BOOL
454    is_modifier(uint8 scancode)
455    {
456            switch (scancode)
457            {
458                    case SCANCODE_CHAR_LSHIFT:
459                    case SCANCODE_CHAR_RSHIFT:
460                    case SCANCODE_CHAR_LCTRL:
461                    case SCANCODE_CHAR_RCTRL:
462                    case SCANCODE_CHAR_LALT:
463                    case SCANCODE_CHAR_RALT:
464                    case SCANCODE_CHAR_LWIN:
465                    case SCANCODE_CHAR_RWIN:
466                    case SCANCODE_CHAR_NUMLOCK:
467                            return True;
468                    default:
469                            break;
470            }
471            return False;
472    }
473    
474  void  void
475  save_remote_modifiers()  save_remote_modifiers(uint8 scancode)
476  {  {
477            if (is_modifier(scancode))
478                    return;
479    
480          saved_remote_modifier_state = remote_modifier_state;          saved_remote_modifier_state = remote_modifier_state;
481  }  }
482    
483  void  void
484  restore_remote_modifiers(uint32 ev_time)  restore_remote_modifiers(uint32 ev_time, uint8 scancode)
485  {  {
486          key_translation dummy;          key_translation dummy;
487    
488            if (is_modifier(scancode))
489                    return;
490    
491          dummy.scancode = 0;          dummy.scancode = 0;
492          dummy.modifiers = saved_remote_modifier_state;          dummy.modifiers = saved_remote_modifier_state;
493          ensure_remote_modifiers(ev_time, dummy);          ensure_remote_modifiers(ev_time, dummy);
# Line 470  void Line 497  void
497  ensure_remote_modifiers(uint32 ev_time, key_translation tr)  ensure_remote_modifiers(uint32 ev_time, key_translation tr)
498  {  {
499          /* If this key is a modifier, do nothing */          /* If this key is a modifier, do nothing */
500          switch (tr.scancode)          if (is_modifier(tr.scancode))
501          {                  return;
                 case SCANCODE_CHAR_LSHIFT:  
                 case SCANCODE_CHAR_RSHIFT:  
                 case SCANCODE_CHAR_LCTRL:  
                 case SCANCODE_CHAR_RCTRL:  
                 case SCANCODE_CHAR_LALT:  
                 case SCANCODE_CHAR_RALT:  
                 case SCANCODE_CHAR_LWIN:  
                 case SCANCODE_CHAR_RWIN:  
                 case SCANCODE_CHAR_NUMLOCK:  
                         return;  
                 default:  
                         break;  
         }  
502    
503          /* NumLock */          /* NumLock */
504          if (MASK_HAS_BITS(tr.modifiers, MapNumLockMask)          if (MASK_HAS_BITS(tr.modifiers, MapNumLockMask)

Legend:
Removed from v.466  
changed lines
  Added in v.470

  ViewVC Help
Powered by ViewVC 1.1.26