/[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 199 by astrand, Wed Sep 25 11:17:59 2002 UTC revision 203 by matthewc, Thu Sep 26 14:04:30 2002 UTC
# Line 40  static key_translation keymap[KEYMAP_SIZ Line 40  static key_translation keymap[KEYMAP_SIZ
40  static int min_keycode;  static int min_keycode;
41  static uint16 remote_modifier_state = 0;  static uint16 remote_modifier_state = 0;
42    
43  static void update_modifier_state(uint16 modifiers, BOOL pressed);  static void update_modifier_state(uint8 scancode, BOOL pressed);
44    
45  static void  static void
46  add_to_keymap(char *keyname, uint8 scancode, uint16 modifiers, char *mapname)  add_to_keymap(char *keyname, uint8 scancode, uint16 modifiers, char *mapname)
# Line 214  xkeymap_init(void) Line 214  xkeymap_init(void)
214  /* Handles, for example, multi-scancode keypresses (which is not  /* Handles, for example, multi-scancode keypresses (which is not
215     possible via keymap-files) */     possible via keymap-files) */
216  BOOL  BOOL
217  handle_special_keys(uint32 keysym, uint32 ev_time, BOOL pressed)  handle_special_keys(uint32 keysym, unsigned int state, uint32 ev_time, BOOL pressed)
218  {  {
219          switch (keysym)          switch (keysym)
220          {          {
221                  case XK_Break:                  case XK_Break:
222                          if (get_key_state(XK_Alt_L) || get_key_state(XK_Alt_R))                          if (get_key_state(state, XK_Alt_L) || get_key_state(state, XK_Alt_R))
223                          {                          {
224                                  /* toggle full screen */                                  /* toggle full screen */
225                                  if (pressed)                                  if (pressed)
# Line 471  ensure_remote_modifiers(uint32 ev_time, Line 471  ensure_remote_modifiers(uint32 ev_time,
471    
472    
473  void  void
474  reset_modifier_keys(void)  reset_modifier_keys(unsigned int state)
475  {  {
476          /* reset keys */          /* reset keys */
477          uint32 ev_time;          uint32 ev_time;
478          ev_time = time(NULL);          ev_time = time(NULL);
479    
480          if (MASK_HAS_BITS(remote_modifier_state, MapLeftShiftMask) && !get_key_state(XK_Shift_L))          if (MASK_HAS_BITS(remote_modifier_state, MapLeftShiftMask) && !get_key_state(state, XK_Shift_L))
481                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LSHIFT);                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LSHIFT);
482    
483          if (MASK_HAS_BITS(remote_modifier_state, MapRightShiftMask) && !get_key_state(XK_Shift_R))          if (MASK_HAS_BITS(remote_modifier_state, MapRightShiftMask) && !get_key_state(state, XK_Shift_R))
484                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RSHIFT);                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RSHIFT);
485    
486          if (MASK_HAS_BITS(remote_modifier_state, MapLeftCtrlMask) && !get_key_state(XK_Control_L))          if (MASK_HAS_BITS(remote_modifier_state, MapLeftCtrlMask) && !get_key_state(state, XK_Control_L))
487                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LCTRL);                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LCTRL);
488    
489          if (MASK_HAS_BITS(remote_modifier_state, MapRightCtrlMask) && !get_key_state(XK_Control_R))          if (MASK_HAS_BITS(remote_modifier_state, MapRightCtrlMask) && !get_key_state(state, XK_Control_R))
490                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RCTRL);                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RCTRL);
491    
492          if (MASK_HAS_BITS(remote_modifier_state, MapLeftAltMask) && !get_key_state(XK_Alt_L))          if (MASK_HAS_BITS(remote_modifier_state, MapLeftAltMask) && !get_key_state(state, XK_Alt_L))
493                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT);                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LALT);
494    
495          if (MASK_HAS_BITS(remote_modifier_state, MapRightAltMask) &&          if (MASK_HAS_BITS(remote_modifier_state, MapRightAltMask) &&
496              !get_key_state(XK_Alt_R) && !get_key_state(XK_Mode_switch))              !get_key_state(state, XK_Alt_R) && !get_key_state(state, XK_Mode_switch))
497                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT);                  rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT);
498  }  }
499    
500    
501  static void  static void
502  update_modifier_state(uint16 modifiers, BOOL pressed)  update_modifier_state(uint8 scancode, BOOL pressed)
503  {  {
504  #ifdef WITH_DEBUG_KBD  #ifdef WITH_DEBUG_KBD
505          uint16 old_modifier_state;          uint16 old_modifier_state;
# Line 507  update_modifier_state(uint16 modifiers, Line 507  update_modifier_state(uint16 modifiers,
507          old_modifier_state = remote_modifier_state;          old_modifier_state = remote_modifier_state;
508  #endif  #endif
509    
510          switch (modifiers)          switch (scancode)
511          {          {
512                  case SCANCODE_CHAR_LSHIFT:                  case SCANCODE_CHAR_LSHIFT:
513                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftShiftMask, pressed);                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftShiftMask, pressed);
# Line 561  update_modifier_state(uint16 modifiers, Line 561  update_modifier_state(uint16 modifiers,
561    
562  /* Send keyboard input */  /* Send keyboard input */
563  void  void
564  rdp_send_scancode(uint32 time, uint16 flags, uint16 scancode)  rdp_send_scancode(uint32 time, uint16 flags, uint8 scancode)
565  {  {
566          update_modifier_state(scancode, !(flags & RDP_KEYRELEASE));          update_modifier_state(scancode, !(flags & RDP_KEYRELEASE));
567    

Legend:
Removed from v.199  
changed lines
  Added in v.203

  ViewVC Help
Powered by ViewVC 1.1.26