From: Ian Jackson Date: Wed, 18 Nov 2009 23:31:01 +0000 (+0000) Subject: Make shifted keys actually work. Modifier map contains codes, not syms X-Git-Tag: 5.7^0 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.main.git;a=commitdiff_plain;h=1f6f88af87868d6e059be154ed6b56dd9ea7ac6c Make shifted keys actually work. Modifier map contains codes, not syms --- diff --git a/yarrg/pages.c b/yarrg/pages.c index d52cec1..d5385d3 100644 --- a/yarrg/pages.c +++ b/yarrg/pages.c @@ -179,21 +179,21 @@ static void keymap_startup(void) { mm_shift.isdef= 'x'; int modent; for (modent=0; modentmax_keypermod; modent++) { - KeySym shiftsym= modmap->modifiermap[modent]; - keydebugf("KEYMAP modifier #0 keysym #%d is %#lx ", - modent, (unsigned long)shiftsym); - if (shiftsym==NoSymbol) { keydebugf("NoSymbol\n"); continue; } - keydebugf("...\n"); - keymap_lookup_modifier(&mm_shift, "shift", shiftsym, 's'); - if (mm_shift.isdef=='y') break; + int kc= modmap->modifiermap[modent]; + keydebugf("KEYMAP modifier #0 key #%d is %d ", modent, kc); + if (!kc) { keydebugf("none\n"); continue; } + keydebugf("ok\n"); + mm_shift.kc= kc; + mm_shift.isdef= 'y'; + break; } + XFreeModifiermap(modmap); + /* find keycodes for mode_switch (column+=2) and ISO L3 shift (column+=4) */ keymap_lookup_modifier(&mm_modeswitch,"modeswitch", XK_Mode_switch, 'm'); keymap_lookup_modifier(&mm_isol3shift,"isol3shift", XK_ISO_Level3_Shift,'l'); - XFreeModifiermap(modmap); - #define KEY_MAP_LOOKUP(xk) \ keymap_lookup_key(&mk_##xk, xk, #xk); KEYS(KEY_MAP_LOOKUP)