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

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

revision 1293 by astrand, Wed Oct 11 17:56:05 2006 UTC revision 1372 by jsorg71, Mon Jan 8 04:47:06 2007 UTC
# Line 2  Line 2 
2     rdesktop: A Remote Desktop Protocol client.     rdesktop: A Remote Desktop Protocol client.
3     User interface services - X keyboard mapping     User interface services - X keyboard mapping
4    
5     Copyright (C) Matthew Chapman 1999-2005     Copyright (C) Matthew Chapman 1999-2007
6     Copyright (C) Peter Astrand <peter@cendio.se> 2003     Copyright (C) Peter Astrand <peter@cendio.se> 2003-2007
7      
8     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
9     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
10     the Free Software Foundation; either version 2 of the License, or     the Free Software Foundation; either version 2 of the License, or
11     (at your option) any later version.     (at your option) any later version.
12      
13     This program is distributed in the hope that it will be useful,     This program is distributed in the hope that it will be useful,
14     but WITHOUT ANY WARRANTY; without even the implied warranty of     but WITHOUT ANY WARRANTY; without even the implied warranty of
15     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# Line 46  extern int g_keyboard_type; Line 46  extern int g_keyboard_type;
46  extern int g_keyboard_subtype;  extern int g_keyboard_subtype;
47  extern int g_keyboard_functionkeys;  extern int g_keyboard_functionkeys;
48  extern int g_win_button_size;  extern int g_win_button_size;
49  extern BOOL g_enable_compose;  extern RD_BOOL g_enable_compose;
50  extern BOOL g_use_rdp5;  extern RD_BOOL g_use_rdp5;
51  extern BOOL g_numlock_sync;  extern RD_BOOL g_numlock_sync;
52    
53  static BOOL keymap_loaded;  static RD_BOOL keymap_loaded;
54  static key_translation *keymap[KEYMAP_SIZE];  static key_translation *keymap[KEYMAP_SIZE];
55  static int min_keycode;  static int min_keycode;
56  static uint16 remote_modifier_state = 0;  static uint16 remote_modifier_state = 0;
57  static uint16 saved_remote_modifier_state = 0;  static uint16 saved_remote_modifier_state = 0;
58    
59  static void update_modifier_state(uint8 scancode, BOOL pressed);  static void update_modifier_state(uint8 scancode, RD_BOOL pressed);
60    
61  /* Free key_translation structure, including linked list */  /* Free key_translation structure, including linked list */
62  static void  static void
# Line 159  add_sequence(char *rest, char *mapname) Line 159  add_sequence(char *rest, char *mapname)
159          DEBUG_KBD(("\n"));          DEBUG_KBD(("\n"));
160  }  }
161    
162  BOOL  RD_BOOL
163  xkeymap_from_locale(const char *locale)  xkeymap_from_locale(const char *locale)
164  {  {
165          char *str, *ptr;          char *str, *ptr;
# Line 275  xkeymap_open(const char *filename) Line 275  xkeymap_open(const char *filename)
275          return NULL;          return NULL;
276  }  }
277    
278  static BOOL  static RD_BOOL
279  xkeymap_read(char *mapname)  xkeymap_read(char *mapname)
280  {  {
281          FILE *fp;          FILE *fp;
# Line 455  xkeymap_init(void) Line 455  xkeymap_init(void)
455  }  }
456    
457  static void  static void
458  send_winkey(uint32 ev_time, BOOL pressed, BOOL leftkey)  send_winkey(uint32 ev_time, RD_BOOL pressed, RD_BOOL leftkey)
459  {  {
460          uint8 winkey;          uint8 winkey;
461    
# Line 495  send_winkey(uint32 ev_time, BOOL pressed Line 495  send_winkey(uint32 ev_time, BOOL pressed
495  static void  static void
496  reset_winkey(uint32 ev_time)  reset_winkey(uint32 ev_time)
497  {  {
         printf("reset_winkey\n");  
498          if (g_use_rdp5)          if (g_use_rdp5)
499          {          {
500                  /* For some reason, it seems to suffice to release                  /* For some reason, it seems to suffice to release
# Line 505  reset_winkey(uint32 ev_time) Line 504  reset_winkey(uint32 ev_time)
504  }  }
505    
506  /* Handle special key combinations */  /* Handle special key combinations */
507  BOOL  RD_BOOL
508  handle_special_keys(uint32 keysym, unsigned int state, uint32 ev_time, BOOL pressed)  handle_special_keys(uint32 keysym, unsigned int state, uint32 ev_time, RD_BOOL pressed)
509  {  {
510          switch (keysym)          switch (keysym)
511          {          {
# Line 682  xkeymap_translate_key(uint32 keysym, uns Line 681  xkeymap_translate_key(uint32 keysym, uns
681    
682  void  void
683  xkeymap_send_keys(uint32 keysym, unsigned int keycode, unsigned int state, uint32 ev_time,  xkeymap_send_keys(uint32 keysym, unsigned int keycode, unsigned int state, uint32 ev_time,
684                    BOOL pressed, uint8 nesting)                    RD_BOOL pressed, uint8 nesting)
685  {  {
686          key_translation tr, *ptr;          key_translation tr, *ptr;
687          tr = xkeymap_translate_key(keysym, keycode, state);          tr = xkeymap_translate_key(keysym, keycode, state);
# Line 763  get_ksname(uint32 keysym) Line 762  get_ksname(uint32 keysym)
762          return ksname;          return ksname;
763  }  }
764    
765  static BOOL  static RD_BOOL
766  is_modifier(uint8 scancode)  is_modifier(uint8 scancode)
767  {  {
768          switch (scancode)          switch (scancode)
# Line 953  reset_modifier_keys() Line 952  reset_modifier_keys()
952    
953          if (g_numlock_sync)          if (g_numlock_sync)
954                  rdp_send_input(ev_time, RDP_INPUT_SYNCHRONIZE, 0, ui_get_numlock_state(state), 0);                  rdp_send_input(ev_time, RDP_INPUT_SYNCHRONIZE, 0, ui_get_numlock_state(state), 0);
   
         //sleep(4);  
         //rdp_send_input(time(NULL), RDP_INPUT_SCANCODE, RDP_KEYPRESS, 0x9c, 0);  
         //rdp_send_input(time(NULL), RDP_INPUT_SCANCODE, RDP_KEYRELEASE, 0x9c, 0);  
955  }  }
956    
957    
958  static void  static void
959  update_modifier_state(uint8 scancode, BOOL pressed)  update_modifier_state(uint8 scancode, RD_BOOL pressed)
960  {  {
961  #ifdef WITH_DEBUG_KBD  #ifdef WITH_DEBUG_KBD
962          uint16 old_modifier_state;          uint16 old_modifier_state;
# Line 1000  update_modifier_state(uint8 scancode, BO Line 995  update_modifier_state(uint8 scancode, BO
995                             modifier state only on Keypress */                             modifier state only on Keypress */
996                          if (pressed && !g_numlock_sync)                          if (pressed && !g_numlock_sync)
997                          {                          {
998                                  BOOL newNumLockState;                                  RD_BOOL newNumLockState;
999                                  newNumLockState =                                  newNumLockState =
1000                                          (MASK_HAS_BITS                                          (MASK_HAS_BITS
1001                                           (remote_modifier_state, MapNumLockMask) == False);                                           (remote_modifier_state, MapNumLockMask) == False);

Legend:
Removed from v.1293  
changed lines
  Added in v.1372

  ViewVC Help
Powered by ViewVC 1.1.26