Don't override keys if command fails

This commit is contained in:
Drew DeVault 2015-08-09 23:04:37 -04:00
parent b49cfa0c16
commit f6e65b6bb2
4 changed files with 9 additions and 10 deletions

View File

@ -104,13 +104,13 @@ int cmd_focus(struct sway_config *config, int argc, char **argv) {
return 1; return 1;
} }
if (strcasecmp(argv[0], "left") == 0) { if (strcasecmp(argv[0], "left") == 0) {
move_focus(MOVE_LEFT); return move_focus(MOVE_LEFT);
} else if (strcasecmp(argv[0], "right") == 0) { } else if (strcasecmp(argv[0], "right") == 0) {
move_focus(MOVE_RIGHT); return move_focus(MOVE_RIGHT);
} else if (strcasecmp(argv[0], "up") == 0) { } else if (strcasecmp(argv[0], "up") == 0) {
move_focus(MOVE_UP); return move_focus(MOVE_UP);
} else if (strcasecmp(argv[0], "down") == 0) { } else if (strcasecmp(argv[0], "down") == 0) {
move_focus(MOVE_DOWN); return move_focus(MOVE_DOWN);
} else if (strcasecmp(argv[0], "parent") == 0) { } else if (strcasecmp(argv[0], "parent") == 0) {
swayc_t *current = get_focused_container(&root_container); swayc_t *current = get_focused_container(&root_container);
if (current && current->parent) { if (current && current->parent) {

View File

@ -74,8 +74,7 @@ bool handle_key(wlc_handle view, uint32_t time, const struct wlc_modifiers
} }
if (match) { if (match) {
ret = false; ret = handle_command(config, binding->command) == 0;
handle_command(config, binding->command);
} }
} }
} }

View File

@ -5,7 +5,7 @@
#include "layout.h" #include "layout.h"
#include "movement.h" #include "movement.h"
void move_focus(enum movement_direction direction) { int move_focus(enum movement_direction direction) {
swayc_t *current = get_focused_container(&root_container); swayc_t *current = get_focused_container(&root_container);
swayc_t *parent = current->parent; swayc_t *parent = current->parent;
@ -42,7 +42,7 @@ void move_focus(enum movement_direction direction) {
} else { } else {
unfocus_all(&root_container); unfocus_all(&root_container);
focus_view(parent->children->items[desired]); focus_view(parent->children->items[desired]);
return; return 0;
} }
} }
if (!can_move) { if (!can_move) {
@ -51,7 +51,7 @@ void move_focus(enum movement_direction direction) {
parent = parent->parent; parent = parent->parent;
if (parent->type == C_ROOT) { if (parent->type == C_ROOT) {
// Nothing we can do // Nothing we can do
return; return 1;
} }
} }
} }

View File

@ -11,6 +11,6 @@ enum movement_direction{
MOVE_DOWN MOVE_DOWN
}; };
void move_focus(enum movement_direction direction); int move_focus(enum movement_direction direction);
#endif #endif