diff -Naur xine-ui-cvs-02-26-08.org/src/xitk/kbindings.c xine-ui-cvs-02-26-08/src/xitk/kbindings.c --- xine-ui-cvs-02-26-08.org/src/xitk/kbindings.c 2008-01-26 17:06:34.000000000 -0700 +++ xine-ui-cvs-02-26-08/src/xitk/kbindings.c 2008-06-05 23:54:38.000000000 -0600 @@ -464,10 +464,12 @@ kbindings_convert_modifier(mod, modifier); mkey = xitk_get_key_pressed(event); + printf("XXXXXX mod=%d, modifier=%d, mkey=%d\n", mod, *modifier, mkey); switch (mkey) { default: XLockDisplay (event->xany.display); keySym = XKeysymToString(mkey); + printf("XXXXXX keystring=%s\n", keySym); XUnlockDisplay (event->xany.display); if (keySym != NULL) { strlcpy(buf, keySym, size); @@ -781,6 +783,8 @@ static void kbedit_delete(xitk_widget_t *w, void *data) { int s = xitk_browser_get_current_selected(kbedit->browser); + // avoid over writing the keymap file due to a bad keystroke + if (gGui->nongui_error_msg) return; xitk_labelbutton_set_state(kbedit->alias, 0); xitk_labelbutton_set_state(kbedit->edit, 0); xitk_disable_widget(kbedit->grab); @@ -1107,6 +1111,9 @@ int fontheight; xitk_font_t *fs; xitk_widget_t *w; + + // avoid over writing the keymap file due to a bad keystroke + if (gGui->nongui_error_msg) return; x = xine_config_register_num(gGui->xine, "gui.kbedit_x", 80, diff -Naur xine-ui-cvs-02-26-08.org/src/xitk/xine-toolkit/inputtext.c xine-ui-cvs-02-26-08/src/xitk/xine-toolkit/inputtext.c --- xine-ui-cvs-02-26-08.org/src/xitk/xine-toolkit/inputtext.c 2008-01-13 12:35:09.000000000 -0700 +++ xine-ui-cvs-02-26-08/src/xitk/xine-toolkit/inputtext.c 2008-07-03 11:35:01.000000000 -0600 @@ -37,6 +37,8 @@ #define NORMAL 1 #define FOCUS 2 +unsigned int mods_used = (ShiftMask | ControlMask | Mod1Mask | Mod2Mask); +// | Mod3Mask| Mod4Mask| Mod5Mask); /* * */ @@ -129,6 +131,8 @@ if(state & XK_Multi_key) state = (state | XK_Multi_key) & 0xFF; + state = state & mods_used; + if(state & ShiftMask) *modifier |= MODIFIER_SHIFT; if(state & LockMask)