VirtualBox

Changeset 3938 in vbox


Ignore:
Timestamp:
Jul 31, 2007 11:45:46 AM (18 years ago)
Author:
vboxsync
Message:

Frontends/VirtualBox: fixed AltGr again on Linux hosts

File:
1 edited

Legend:

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

    r2529 r3938  
    10531053    VK_F1, VK_F2,
    10541054    VK_F3, VK_F4, VK_F5, VK_F6, VK_F7, VK_F8, VK_F9, VK_F10,    /* FFC0 */
    1055     VK_F11, VK_F12, VK_F13, VK_F14, VK_F15, VK_F16, 0, 0,       /* FFC8 */
     1055    VK_F11, VK_F12, VK_LWIN /* VK_F13 */, VK_RWIN /* VK_F14 */,
     1056    VK_F15, VK_F16, 0, 0,                                       /* FFC8 */
    10561057    0, 0, 0, 0, 0, 0, 0, 0,                                     /* FFD0 */
    10571058    0, 0, 0, 0, 0, 0, 0, 0,                                     /* FFD8 */
     
    10831084    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,              /* FF58 */
    10841085    /* misc keys */
    1085     /*?*/ 0, 0x137, /*?*/ 0, 0x152, 0x00, 0x00, 0x00, 0x00,      /* FF60 */
     1086    /*?*/ 0, 0x137, /*?*/ 0, 0x152, 0x00, 0x00, 0x00, 0x15D,      /* FF60 */
    10861087    /*?*/ 0, /*?*/ 0, 0x38, 0x146, 0x00, 0x00, 0x00, 0x00,       /* FF68 */
    10871088    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,              /* FF70 */
     
    10991100    0x3B, 0x3C,
    11001101    0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44,              /* FFC0 */
    1101     0x57, 0x58, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,              /* FFC8 */
     1102    0x57, 0x58, 0x15B, 0x15C, 0x00, 0x00, 0x00, 0x00,              /* FFC8 */
    11021103    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,              /* FFD0 */
    11031104    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,              /* FFD8 */
     
    18241825        if (!vkey)
    18251826        {
     1827            // @@@AH VBOX hack for AltGr
     1828            if (e2.keycode == 0x71)
     1829            {
     1830                TRACE("VBOX HACK, mapping keycode 0x71 to scancode %X\n", VK_MENU);
     1831                vkey = VK_MENU | 0x100;
     1832            } else {
    18261833            /* Others keys: let's assign OEM virtual key codes in the allowed range,
    18271834             * that is ([0xba,0xc0], [0xdb,0xe4], 0xe6 (given up) et [0xe9,0xf5]) */
    1828             do
    1829             {
    1830                 switch (++OEMvkey)
     1835                do
    18311836                {
    1832                 case 0xc1 : OEMvkey=0xdb; break;
    1833                 case 0xe5 : OEMvkey=0xe9; break;
    1834                 case 0xf6 : OEMvkey=0xf5; WARN("No more OEM vkey available!\n");
     1837                    switch (++OEMvkey)
     1838                    {
     1839                    case 0xc1 : OEMvkey=0xdb; break;
     1840                    case 0xe5 : OEMvkey=0xe9; break;
     1841                    case 0xf6 : OEMvkey=0xf5; WARN("No more OEM vkey available!\n");
     1842                    }
     1843                } while (OEMvkey < 0xf5 && vkey_used[OEMvkey]);
     1844
     1845                vkey = VKEY_IF_NOT_USED(OEMvkey);
     1846
     1847                if (TRACE_ON(keyboard))
     1848                {
     1849                    TRACE("OEM specific virtual key %X assigned to keycode %X:\n",
     1850                                     OEMvkey, e2.keycode);
     1851                    TRACE("(");
     1852                    for (i = 0; i < keysyms_per_keycode; i += 1)
     1853                    {
     1854                        const char *ksname;
     1855
     1856                        keysym = XLookupKeysym(&e2, i);
     1857                        ksname = XKeysymToString(keysym);
     1858                        if (!ksname)
     1859                            ksname = "NoSymbol";
     1860                        TRACE( "%lX (%s) ", keysym, ksname);
     1861                    }
     1862                    TRACE(")\n");
    18351863                }
    1836             } while (OEMvkey < 0xf5 && vkey_used[OEMvkey]);
    1837 
    1838             vkey = VKEY_IF_NOT_USED(OEMvkey);
    1839 
    1840             if (TRACE_ON(keyboard))
    1841             {
    1842                 TRACE("OEM specific virtual key %X assigned to keycode %X:\n",
    1843                                  OEMvkey, e2.keycode);
    1844                 TRACE("(");
    1845                 for (i = 0; i < keysyms_per_keycode; i += 1)
    1846                 {
    1847                     const char *ksname;
    1848 
    1849                     keysym = XLookupKeysym(&e2, i);
    1850                     ksname = XKeysymToString(keysym);
    1851                     if (!ksname)
    1852                         ksname = "NoSymbol";
    1853                     TRACE( "%lX (%s) ", keysym, ksname);
    1854                 }
    1855                 TRACE(")\n");
    18561864            }
    18571865        }
Note: See TracChangeset for help on using the changeset viewer.

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