/[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 77 by astrand, Mon Jul 29 20:17:10 2002 UTC revision 82 by astrand, Tue Jul 30 07:18:48 2002 UTC
# Line 54  add_to_keymap(char *keyname, uint8 scanc Line 54  add_to_keymap(char *keyname, uint8 scanc
54          }          }
55    
56          DEBUG_KBD("Adding translation, keysym=0x%x, scancode=0x%x, "          DEBUG_KBD("Adding translation, keysym=0x%x, scancode=0x%x, "
57                    "modifiers=0x%x\n", (unsigned int) keysym, scancode,                    "modifiers=0x%x\n", (unsigned int) keysym, scancode, modifiers);
                   modifiers);  
58    
59          keymap[keysym & KEYMAP_MASK].scancode = scancode;          keymap[keysym & KEYMAP_MASK].scancode = scancode;
60          keymap[keysym & KEYMAP_MASK].modifiers = modifiers;          keymap[keysym & KEYMAP_MASK].modifiers = modifiers;
# Line 140  xkeymap_read(char *mapname) Line 139  xkeymap_read(char *mapname)
139                  p = strchr(line, ' ');                  p = strchr(line, ' ');
140                  if (p == NULL)                  if (p == NULL)
141                  {                  {
142                          error("Bad line %d in keymap %s\n", line_num,                          error("Bad line %d in keymap %s\n", line_num, mapname);
                               mapname);  
143                          continue;                          continue;
144                  }                  }
145                  else                  else
# Line 249  xkeymap_translate_key(KeySym keysym, uns Line 247  xkeymap_translate_key(KeySym keysym, uns
247                  return tr;                  return tr;
248          }          }
249    
250          printf("No translation for (keysym 0x%lx, %s)\n", keysym,          printf("No translation for (keysym 0x%lx, %s)\n", keysym, get_ksname(keysym));
                get_ksname(keysym));  
251    
252          /* not in keymap, try to interpret the raw scancode */          /* not in keymap, try to interpret the raw scancode */
253          if ((keycode >= min_keycode) && (keycode <= 0x60))          if ((keycode >= min_keycode) && (keycode <= 0x60))
# Line 344  ensure_remote_modifiers(uint32 ev_time, Line 341  ensure_remote_modifiers(uint32 ev_time,
341                  if (MASK_HAS_BITS(tr.modifiers, MapShiftMask))                  if (MASK_HAS_BITS(tr.modifiers, MapShiftMask))
342                  {                  {
343                          /* Needs this modifier. Send down. */                          /* Needs this modifier. Send down. */
344                          rdp_send_scancode(ev_time, RDP_KEYPRESS,                          rdp_send_scancode(ev_time, RDP_KEYPRESS, SCANCODE_CHAR_LSHIFT);
                                           SCANCODE_CHAR_LSHIFT);  
345                  }                  }
346                  else                  else
347                  {                  {
348                          /* Should not use this modifier. Send up. */                          /* Should not use this modifier. Send up. */
349                          rdp_send_scancode(ev_time, RDP_KEYRELEASE,                          rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_LSHIFT);
                                           SCANCODE_CHAR_LSHIFT);  
350                  }                  }
351          }          }
352    
# Line 363  ensure_remote_modifiers(uint32 ev_time, Line 358  ensure_remote_modifiers(uint32 ev_time,
358                  if (MASK_HAS_BITS(tr.modifiers, MapAltGrMask))                  if (MASK_HAS_BITS(tr.modifiers, MapAltGrMask))
359                  {                  {
360                          /* Needs this modifier. Send down. */                          /* Needs this modifier. Send down. */
361                          rdp_send_scancode(ev_time, RDP_KEYPRESS,                          rdp_send_scancode(ev_time, RDP_KEYPRESS, SCANCODE_CHAR_RALT);
                                           SCANCODE_CHAR_RALT);  
362                  }                  }
363                  else                  else
364                  {                  {
365                          /* Should not use this modifier. Send up. */                          /* Should not use this modifier. Send up. */
366                          rdp_send_scancode(ev_time, RDP_KEYRELEASE,                          rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_RALT);
                                           SCANCODE_CHAR_RALT);  
367                  }                  }
368          }          }
369    
# Line 383  ensure_remote_modifiers(uint32 ev_time, Line 376  ensure_remote_modifiers(uint32 ev_time,
376                  if (MASK_HAS_BITS(tr.modifiers, MapNumLockMask))                  if (MASK_HAS_BITS(tr.modifiers, MapNumLockMask))
377                  {                  {
378                          /* Needs this modifier. Toggle */                          /* Needs this modifier. Toggle */
379                          rdp_send_scancode(ev_time, RDP_KEYPRESS,                          rdp_send_scancode(ev_time, RDP_KEYPRESS, SCANCODE_CHAR_NUMLOCK);
380                                            SCANCODE_CHAR_NUMLOCK);                          rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_NUMLOCK);
                         rdp_send_scancode(ev_time, RDP_KEYRELEASE,  
                                           SCANCODE_CHAR_NUMLOCK);  
381                  }                  }
382                  else                  else
383                  {                  {
384                          /* Should not use this modifier. Toggle */                          /* Should not use this modifier. Toggle */
385                          rdp_send_scancode(ev_time, RDP_KEYPRESS,                          rdp_send_scancode(ev_time, RDP_KEYPRESS, SCANCODE_CHAR_NUMLOCK);
386                                            SCANCODE_CHAR_NUMLOCK);                          rdp_send_scancode(ev_time, RDP_KEYRELEASE, SCANCODE_CHAR_NUMLOCK);
                         rdp_send_scancode(ev_time, RDP_KEYRELEASE,  
                                           SCANCODE_CHAR_NUMLOCK);  
387                  }                  }
388          }          }
389    
# Line 410  update_modifier_state(uint16 modifiers, Line 399  update_modifier_state(uint16 modifiers,
399          switch (modifiers)          switch (modifiers)
400          {          {
401                  case SCANCODE_CHAR_LSHIFT:                  case SCANCODE_CHAR_LSHIFT:
402                          MASK_CHANGE_BIT(remote_modifier_state,                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftShiftMask, pressed);
                                         MapLeftShiftMask, pressed);  
403                          break;                          break;
404                  case SCANCODE_CHAR_RSHIFT:                  case SCANCODE_CHAR_RSHIFT:
405                          MASK_CHANGE_BIT(remote_modifier_state,                          MASK_CHANGE_BIT(remote_modifier_state, MapRightShiftMask, pressed);
                                         MapRightShiftMask, pressed);  
406                          break;                          break;
407                  case SCANCODE_CHAR_LCTRL:                  case SCANCODE_CHAR_LCTRL:
408                          MASK_CHANGE_BIT(remote_modifier_state,                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftCtrlMask, pressed);
                                         MapLeftCtrlMask, pressed);  
409                          break;                          break;
410                  case SCANCODE_CHAR_RCTRL:                  case SCANCODE_CHAR_RCTRL:
411                          MASK_CHANGE_BIT(remote_modifier_state,                          MASK_CHANGE_BIT(remote_modifier_state, MapRightCtrlMask, pressed);
                                         MapRightCtrlMask, pressed);  
412                          break;                          break;
413                  case SCANCODE_CHAR_LALT:                  case SCANCODE_CHAR_LALT:
414                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftAltMask,                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftAltMask, pressed);
                                         pressed);  
415                          break;                          break;
416                  case SCANCODE_CHAR_RALT:                  case SCANCODE_CHAR_RALT:
417                          MASK_CHANGE_BIT(remote_modifier_state,                          MASK_CHANGE_BIT(remote_modifier_state, MapRightAltMask, pressed);
                                         MapRightAltMask, pressed);  
418                          break;                          break;
419                  case SCANCODE_CHAR_LWIN:                  case SCANCODE_CHAR_LWIN:
420                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftWinMask,                          MASK_CHANGE_BIT(remote_modifier_state, MapLeftWinMask, pressed);
                                         pressed);  
421                          break;                          break;
422                  case SCANCODE_CHAR_RWIN:                  case SCANCODE_CHAR_RWIN:
423                          MASK_CHANGE_BIT(remote_modifier_state,                          MASK_CHANGE_BIT(remote_modifier_state, MapRightWinMask, pressed);
                                         MapRightWinMask, pressed);  
424                          break;                          break;
425                  case SCANCODE_CHAR_NUMLOCK:                  case SCANCODE_CHAR_NUMLOCK:
426                          /* KeyReleases for NumLocks are sent immediately. Toggle the                          /* KeyReleases for NumLocks are sent immediately. Toggle the
# Line 449  update_modifier_state(uint16 modifiers, Line 430  update_modifier_state(uint16 modifiers,
430                                  BOOL newNumLockState;                                  BOOL newNumLockState;
431                                  newNumLockState =                                  newNumLockState =
432                                          (MASK_HAS_BITS                                          (MASK_HAS_BITS
433                                           (remote_modifier_state,                                           (remote_modifier_state, MapNumLockMask) == False);
                                           MapNumLockMask) == False);  
434                                  MASK_CHANGE_BIT(remote_modifier_state,                                  MASK_CHANGE_BIT(remote_modifier_state,
435                                                  MapNumLockMask,                                                  MapNumLockMask, newNumLockState);
                                                 newNumLockState);  
436                          }                          }
437                          break;                          break;
438          }          }
439          DEBUG_KBD("After updating modifier_state:0x%x\n",          DEBUG_KBD("After updating modifier_state:0x%x\n", remote_modifier_state);
                   remote_modifier_state);  
440    
441  }  }
442    
# Line 477  rdp_send_scancode(uint32 time, uint16 fl Line 455  rdp_send_scancode(uint32 time, uint16 fl
455          }          }
456          else          else
457          {          {
458                  DEBUG_KBD("Sending scancode=0x%x, flags=0x%x\n", scancode,                  DEBUG_KBD("Sending scancode=0x%x, flags=0x%x\n", scancode, flags);
                           flags);  
459                  rdp_send_input(time, RDP_INPUT_SCANCODE, flags, scancode, 0);                  rdp_send_input(time, RDP_INPUT_SCANCODE, flags, scancode, 0);
460          }          }
461  }  }

Legend:
Removed from v.77  
changed lines
  Added in v.82

  ViewVC Help
Powered by ViewVC 1.1.26