X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=obt%2Fkeyboard.c;h=8bfdd39b7f79046daa5d8a326803cbe9bfa25293;hb=aa15563feeee03d7748e7d5279decf60db23fda9;hp=30aa7f9366ea8abffe468183337624809f877abc;hpb=b7ddaa5728b5449449e3ea14cf84252285bbc794;p=chaz%2Fopenbox diff --git a/obt/keyboard.c b/obt/keyboard.c index 30aa7f93..8bfdd39b 100644 --- a/obt/keyboard.c +++ b/obt/keyboard.c @@ -147,7 +147,6 @@ void xim_init(void) 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) @@ -209,9 +208,9 @@ ObtModkeysKey obt_keyboard_keyevent_to_modkey(XEvent *e) 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: @@ -300,7 +299,7 @@ KeyCode* obt_keyboard_keysym_to_keycode(KeySym sym) 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; } @@ -440,7 +439,8 @@ void obt_keyboard_context_unref(ObtIC *ic) { 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); } }