/[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 66 by astrand, Thu Jul 18 18:28:12 2002 UTC revision 77 by astrand, Mon Jul 29 20:17:10 2002 UTC
# Line 35  Line 35 
35  extern Display *display;  extern Display *display;
36  extern char keymapname[16];  extern char keymapname[16];
37  extern int keylayout;  extern int keylayout;
38    extern BOOL enable_compose;
39    
40  static key_translation keymap[KEYMAP_SIZE];  static key_translation keymap[KEYMAP_SIZE];
41  static unsigned int min_keycode;  static int min_keycode;
42  static uint16 remote_modifier_state = 0;  static uint16 remote_modifier_state = 0;
43    
44  static void  static void
# Line 120  xkeymap_read(char *mapname) Line 121  xkeymap_read(char *mapname)
121                          continue;                          continue;
122                  }                  }
123    
124                    /* compose */
125                    if (strncmp(line, "enable_compose", 15) == 0)
126                    {
127                            DEBUG_KBD("Enabling compose handling\n");
128                            enable_compose = True;
129                            continue;
130                    }
131    
132                  /* Comment */                  /* Comment */
133                  if (line[0] == '#')                  if (line[0] == '#')
134                  {                  {
# Line 163  xkeymap_read(char *mapname) Line 172  xkeymap_read(char *mapname)
172                          MASK_ADD_BITS(modifiers, MapNumLockMask);                          MASK_ADD_BITS(modifiers, MapNumLockMask);
173                  }                  }
174    
175                    if (strstr(line_rest, "localstate"))
176                    {
177                            MASK_ADD_BITS(modifiers, MapLocalStateMask);
178                    }
179    
180                  add_to_keymap(keyname, scancode, modifiers, mapname);                  add_to_keymap(keyname, scancode, modifiers, mapname);
181    
182                  if (strstr(line_rest, "addupper"))                  if (strstr(line_rest, "addupper"))
# Line 206  void Line 220  void
220  xkeymap_init2(void)  xkeymap_init2(void)
221  {  {
222          unsigned int max_keycode;          unsigned int max_keycode;
223          XDisplayKeycodes(display, &min_keycode, &max_keycode);          XDisplayKeycodes(display, &min_keycode, (int *) &max_keycode);
224  }  }
225    
226    
227  key_translation  key_translation
228  xkeymap_translate_key(KeySym keysym, unsigned int keycode)  xkeymap_translate_key(KeySym keysym, unsigned int keycode, unsigned int state)
229  {  {
230          key_translation tr = { 0, 0 };          key_translation tr = { 0, 0 };
231    
232          tr = keymap[keysym & KEYMAP_MASK];          tr = keymap[keysym & KEYMAP_MASK];
233    
234            if (tr.modifiers & MapLocalStateMask)
235            {
236                    /* The modifiers to send for this key should be obtained
237                       from the local state. Currently, only shift is implemented. */
238                    if (state & ShiftMask)
239                    {
240                            tr.modifiers = MapLeftShiftMask;
241                    }
242            }
243    
244          if (tr.scancode != 0)          if (tr.scancode != 0)
245          {          {
246                  DEBUG_KBD                  DEBUG_KBD
# Line 253  xkeymap_translate_button(unsigned int bu Line 277  xkeymap_translate_button(unsigned int bu
277                          return MOUSE_FLAG_BUTTON3;                          return MOUSE_FLAG_BUTTON3;
278                  case Button3:   /* right */                  case Button3:   /* right */
279                          return MOUSE_FLAG_BUTTON2;                          return MOUSE_FLAG_BUTTON2;
280                    case Button4:   /* wheel up */
281                            return MOUSE_FLAG_BUTTON4;
282                    case Button5:   /* wheel down */
283                            return MOUSE_FLAG_BUTTON5;
284          }          }
285    
286          return 0;          return 0;

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

  ViewVC Help
Powered by ViewVC 1.1.26