# HG changeset patch # User Eric Polino # Date 1180568302 0 # Node ID c609b4009dbe3c1b960c3ec67d86a97482a4e96a # Parent cfa84fed6ecdca82a136cc490c1497bdd01ca722 1. Cleaned up a bit of dirty formatting in the _register_action lines in _class_init 2. Added the ability to ignore keystrokes sent to the WM diff -r cfa84fed6ecd -r c609b4009dbe finch/libgnt/gntwm.c --- a/finch/libgnt/gntwm.c Mon May 21 20:14:15 2007 +0000 +++ b/finch/libgnt/gntwm.c Wed May 30 23:38:22 2007 +0000 @@ -57,6 +57,8 @@ static time_t last_active_time; static gboolean idle_update; +static gboolean ignore_keys = FALSE; + static GList * g_list_bring_to_front(GList *list, gpointer data) { @@ -1012,6 +1014,22 @@ return TRUE; } +static gboolean +ignore_keys_start(GntBindable *bindable, GList *n){ + GntWM *wm = GNT_WM(bindable); + + if(!wm->menu && !wm->_list.window && wm->mode == GNT_KP_MODE_NORMAL){ + ignore_keys = TRUE; + return TRUE; + } + return FALSE; +} + +static gboolean +ignore_keys_end(GntBindable *bindable, GList *n){ + return ignore_keys ? !(ignore_keys = FALSE) : FALSE; +} + static void gnt_wm_class_init(GntWMClass *klass) { @@ -1139,15 +1157,19 @@ gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "refresh-screen", refresh_screen, "\033" "l", NULL); gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "switch-window-n", switch_window_n, - NULL, NULL); + NULL, NULL); gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-scroll-down", window_scroll_down, "\033" GNT_KEY_CTRL_J, NULL); gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "window-scroll-up", window_scroll_up, "\033" GNT_KEY_CTRL_K, NULL); gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "help-for-widget", help_for_widget, "\033" "/", NULL); - gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "toggle-clipboard", - toggle_clipboard, "\033" "C", NULL); + gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "toggle-clipboard", toggle_clipboard, + "\033" "C", NULL); + gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "ignore-keys-start", ignore_keys_start, + GNT_KEY_CTRL_G, NULL); + gnt_bindable_class_register_action(GNT_BINDABLE_CLASS(klass), "ignore-keys-end", ignore_keys_end, + "\033" GNT_KEY_CTRL_G, NULL); gnt_style_read_actions(G_OBJECT_CLASS_TYPE(klass), GNT_BINDABLE_CLASS(klass)); @@ -1372,6 +1394,15 @@ idle_update = TRUE; + if(ignore_keys){ + if(keys && !strcmp(keys, "\033" GNT_KEY_CTRL_G)){ + if(gnt_bindable_perform_action_key(GNT_BINDABLE(wm), keys)){ + return TRUE; + } + } + return wm->ordered ? gnt_widget_key_pressed(GNT_WIDGET(wm->ordered->data), keys) : FALSE; + } + if (gnt_bindable_perform_action_key(GNT_BINDABLE(wm), keys)) { return TRUE; }