Added macro to get only main modes.
authorDaniel Carl <danielcarl@gmx.de>
Mon, 12 Nov 2012 18:08:53 +0000 (19:08 +0100)
committerDaniel Carl <danielcarl@gmx.de>
Mon, 12 Nov 2012 18:08:53 +0000 (19:08 +0100)
src/keybind.c
src/main.c
src/main.h

index 6ba3a5b..1dff1c5 100644 (file)
@@ -208,13 +208,15 @@ static gboolean keybind_keypress_callback(WebKitWebView* webview, GdkEventKey* e
     }
 
     /* TODO should we use a command for that too? */
-    if (event->keyval == GDK_Tab || event->keyval == GDK_ISO_Left_Tab) {
+    if (CLEAN_MODE(vp.state.mode) == VP_MODE_COMMAND
+        && (event->keyval == GDK_Tab || event->keyval == GDK_ISO_Left_Tab)
+    ) {
         completion_complete(event->keyval == GDK_ISO_Left_Tab);
         return TRUE;
     }
 
     /* check for keybinding */
-    GSList* link = keybind_find(vp.state.mode, vp.state.modkey,
+    GSList* link = keybind_find(CLEAN_MODE(vp.state.mode), vp.state.modkey,
             (CLEAN(event->state) & ~irrelevant), keyval);
 
     if (link) {
index 87eee77..49407cd 100644 (file)
@@ -268,8 +268,7 @@ void vp_clean_up(void)
 static gboolean vp_hide_message(void)
 {
     /* do not clean in command mode */
-    /* TODO add a CLEAN_MODE macro to get only the main modes */
-    if (vp.state.mode & VP_MODE_COMMAND) {
+    if (CLEAN_MODE(vp.state.mode) == VP_MODE_COMMAND) {
         return FALSE;
     }
 
@@ -294,7 +293,7 @@ gboolean vp_set_mode(const Arg* arg)
     vp.state.mode = arg->i;
     vp.state.modkey = vp.state.count  = 0;
 
-    switch (arg->i) {
+    switch (CLEAN_MODE(arg->i)) {
         case VP_MODE_NORMAL:
             gtk_widget_grab_focus(GTK_WIDGET(vp.gui.webview));
             break;
index 5d84953..a0592c0 100644 (file)
@@ -44,6 +44,7 @@
 #endif
 
 #define GET_TEXT() (gtk_entry_get_text(GTK_ENTRY(vp.gui.inputbox)))
+#define CLEAN_MODE(mode) ((mode) & ~(VP_MODE_COMPLETE))
 
 /* enums */
 typedef enum _vp_mode {
@@ -51,8 +52,8 @@ typedef enum _vp_mode {
     VP_MODE_COMMAND       = 1<<1,
     VP_MODE_PATH_THROUGH  = 1<<2,
     VP_MODE_INSERT        = 1<<3,
-    VP_MODE_COMPLETE      = 1<<4,
-    VP_MODE_SEARCH        = 1<<5,
+    VP_MODE_SEARCH        = 1<<4,
+    VP_MODE_COMPLETE      = 1<<5,
 } Mode;
 
 enum {