if (g_ascii_islower(aclass[0]))
aclass[0] = g_ascii_toupper(aclass[0]);
- g_print("Opening Input Method for %s %s\n", aname, aclass);
xim = XOpenIM(obt_display, NULL, aname, aclass);
if (!xim)
case XK_Super_L:
case XK_Super_R: return OBT_KEYBOARD_MODKEY_SUPER;
case XK_Hyper_L:
- case XK_Hyper_R: return OBT_KEYBOARD_MODKEY_SUPER;
+ case XK_Hyper_R: return OBT_KEYBOARD_MODKEY_HYPER;
case XK_Meta_L:
- case XK_Meta_R: return OBT_KEYBOARD_MODKEY_SUPER;
+ case XK_Meta_R: return OBT_KEYBOARD_MODKEY_META;
case XK_Control_L:
case XK_Control_R: return OBT_KEYBOARD_MODKEY_CONTROL;
case XK_Shift_L:
for (i = min_keycode; i <= max_keycode; ++i)
for (j = 0; j < keysyms_per_keycode; ++j)
if (sym == keymap[(i-min_keycode) * keysyms_per_keycode + j]) {
- ret = g_renew(KeyCode, ret, ++n);
+ ret = g_renew(KeyCode, ret, ++n + 1);
ret[n-1] = i;
ret[n] = 0;
}
{
if (--ic->ref < 1) {
xic_all = g_slist_remove(xic_all, ic);
- XDestroyIC(ic->xic);
+ if (ic->xic)
+ XDestroyIC(ic->xic);
g_slice_free(ObtIC, ic);
}
}