Fix compile failure when X_HAVE_UTF8_STRING is not defined
Use the KeyCode to directly find the modifier mask. (Fix bug 5173) We were finding the KeySym first, and then converting back to a modifier mask. But KeySym on a key's release can differ from on its press, and we don't need them to determine the modmask from the keycode. [setxkbmap -option "grp:shifts_toggle"] turns Shift_L into XK_ISO_Prev_Group on key release, and Shift_R into XK_ISO_Next_Group.
Remove unused variable
don't free the XIC if it wasn't created. this appears to cause a crash
Fix a copypasto that broke interactive keybinds with meta and hyper keys
remove a debug print in the keyboard obt stuff
make array large enough
get the modifier mask for a modifier key that is pressed/released more accurately, using the table we built already for other purposes
use g_slice_new() instead of g_new() part 3
destroy XIC's that belong to an XIM before closing the XIM, else Xlib will seggie!
dont print warnings when reading keys which dont generate text
make control keys work in menus/dialogs/etc with the new obt code, using XLookup stuff
make obt translate keypress events to a valid utf8 character (note this makes openbox not compile)
add interface in obt to create an Input Context for a window
create an X Input Method in obt for the app to use for all input
dont assert when there is no valid key layout present
Merge branch 'backport' into work Conflicts: obt/keyboard.c obt/keyboard.h openbox/event.c openbox/menuframe.c openbox/moveresize.c openbox/openbox.c openbox/screen.c
() -> (void)
make menu event handling work more like how other events are handled, less special-casey
make the obt library branch compile again with all the changes merged in from backport