VirtualBox

Ignore:
Timestamp:
Aug 27, 2008 1:16:17 PM (17 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
35424
Message:

FE/Qt: better handling for switched control and capslock keys on a Linux host

Location:
trunk/src/VBox/Frontends/VirtualBox/src/linux
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/linux/keyboard-new.c

    r11116 r11698  
    377377   
    378378    for (; (main_keyboard_type_list[i].comment != NULL) && (0 == found); ++i)
    379         if (   (XKeysymToKeycode(display, XK_Control_L) == main_keyboard_type_list[i].lctrl)
     379        if (   (   (XKeysymToKeycode(display, XK_Control_L) == main_keyboard_type_list[i].lctrl)
     380                && (XKeysymToKeycode(display, XK_Caps_Lock) == main_keyboard_type_list[i].capslock)
     381               )
     382            || (   (XKeysymToKeycode(display, XK_Caps_Lock) == main_keyboard_type_list[i].lctrl)
     383                && (XKeysymToKeycode(display, XK_Control_L) == main_keyboard_type_list[i].capslock)
     384               ) /* Some people like to switch Capslock and left Ctrl */
    380385            && (XKeysymToKeycode(display, XK_Shift_L)   == main_keyboard_type_list[i].lshift)
    381             && (XKeysymToKeycode(display, XK_Caps_Lock) == main_keyboard_type_list[i].capslock)
    382386            && (XKeysymToKeycode(display, XK_Tab)       == main_keyboard_type_list[i].tab)
    383387            && (XKeysymToKeycode(display, XK_Escape)    == main_keyboard_type_list[i].esc)
  • trunk/src/VBox/Frontends/VirtualBox/src/linux/keyboard-types.h

    r11116 r11698  
    6666    { "PC Keyboard", 0x25, 0x32, 0x42, 0x17, 0x9, 0x24, 0x62, 0x68,
    6767      0x64, 0x66, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4a },
    68     { "PC keyboard with Ctrl/Caps reversed", 0x42, 0x32, 0x25, 0x17,
    69       0x9, 0x24, 0x62, 0x68, 0x64, 0x66, 0x43, 0x44, 0x45, 0x46, 0x47,
    70       0x48, 0x49, 0x4a },
    7168    { NULL, 0 } /* Sentinal */
    7269};
    7370
    7471unsigned main_keyboard_type_scans[][256] = {
    75     /* Standard PC keyboard */
    7672    { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
    7773      0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
     
    9187      0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
    9288    },
    93     /* Standard PC keyboard with Ctrl and Caps lock reversed */
    94     { 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6, 0x7,
    95       0x8, 0x9, 0xa, 0xb, 0xc, 0xd, 0xe, 0xf, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
    96       0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x3a, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
    97       0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
    98       0x38, 0x39, 0x1d, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x145, 0x46, 0x47,
    99       0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x0, 0x138, 0x56, 0x57,
    100       0x58, 0x147, 0x148, 0x149, 0x14b, 0x0, 0x14d, 0x14f, 0x150, 0x151, 0x152, 0x153, 0x11c, 0x11d, 0x45, 0x137,
    101       0x135, 0x138, 0x0, 0x15b, 0x15c, 0x15d, 0x13c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x138, 0x0, 0x0, 0x0,
    102       0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    103       0x110, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x119, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    104       0x120, 0x0, 0x122, 0x0, 0x124, 0x15f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x12e, 0x0,
    105       0x130, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    106       0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    107       0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
    108       0x0, 0x0, 0x0, 0x0, 0x0, 0x165, 0x166, 0x167, 0x168, 0x169, 0x16a, 0x16b, 0x16c, 0x16d, 0x0, 0x0,
    109       0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
    110     },
    11189    { 0 } /* Sentinal */
    11290};
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette