all repos — openbox @ 7b3dc69468e3cb97117b82036041afd9d89912e1

openbox fork - make it a bit more like ryudo

Add keyboard/rebindOnMappingNotify option

I have to switch to a qwerty layout to play steam games, and every time
I switch back and forth, we lose some random bindings so I also had to
reconfigure Openbox every time, now I don't.
Mikael Magnusson mikachu@gmail.com
commit

7b3dc69468e3cb97117b82036041afd9d89912e1

parent

39dfb7458a75ca502fb0c18ec0f1a107f5d51249

3 files changed, 16 insertions(+), 7 deletions(-)

jump to
M openbox/config.copenbox/config.c

@@ -83,8 +83,9 @@ guint config_dock_show_delay;

guint config_dock_app_move_button; guint config_dock_app_move_modifiers; -guint config_keyboard_reset_keycode; -guint config_keyboard_reset_state; +guint config_keyboard_reset_keycode; +guint config_keyboard_reset_state; +gboolean config_keyboard_rebind_on_mapping_notify; gint config_mouse_threshold; gint config_mouse_dclicktime;

@@ -503,6 +504,9 @@ while (n) {

parse_key(n, NULL); n = obt_xml_find_node(n->next, "keybind"); } + + if ((n = obt_xml_find_node(node->children, "rebindOnMappingNotify"))) + config_keyboard_rebind_on_mapping_notify = obt_xml_node_bool(n); } /*

@@ -1120,6 +1124,7 @@ obt_xml_register(i, "dock", parse_dock, NULL);

translate_key("C-g", &config_keyboard_reset_state, &config_keyboard_reset_keycode); + config_keyboard_rebind_on_mapping_notify = TRUE; bind_default_keyboard();
M openbox/config.hopenbox/config.h

@@ -179,6 +179,8 @@ /*! The keycode of the key combo which resets the keybaord chains */

extern guint config_keyboard_reset_keycode; /*! The modifiers of the key combo which resets the keybaord chains */ extern guint config_keyboard_reset_state; +/*! Reload the keyboard bindings when the mapping changes */ +extern gboolean config_keyboard_rebind_on_mapping_notify; /*! Number of pixels a drag must go before being considered a drag */ extern gint config_mouse_threshold;
M openbox/event.copenbox/event.c

@@ -637,11 +637,13 @@ window_manage(window);

else if (e->type == MappingNotify) { /* keyboard layout changes for modifier mapping changes. reload the modifier map, and rebind all the key bindings as appropriate */ - ob_debug("Keyboard map changed. Reloading keyboard bindings."); - ob_set_state(OB_STATE_RECONFIGURING); - obt_keyboard_reload(); - keyboard_rebind(); - ob_set_state(OB_STATE_RUNNING); + if (config_keyboard_rebind_on_mapping_notify) { + ob_debug("Keyboard map changed. Reloading keyboard bindings."); + ob_set_state(OB_STATE_RECONFIGURING); + obt_keyboard_reload(); + keyboard_rebind(); + ob_set_state(OB_STATE_RUNNING); + } } else if (e->type == ClientMessage) { /* This is for _NET_WM_REQUEST_FRAME_EXTENTS messages. They come for