diff options
author | emersion <contact@emersion.fr> | 2017-11-20 14:35:31 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2017-11-20 14:35:31 +0100 |
commit | 1d08d317096a80f96d03cd67303381bdedaaac2a (patch) | |
tree | 0c2115f562fe6b5f6a609b561a05dbb9dddda10c /rootston/keyboard.c | |
parent | 272e0858e49bf341b363fdbe59a5f669ba678ce2 (diff) | |
parent | c3e0fbdb8f0cb16d99e70d14bb5cef6bd48d4591 (diff) |
Merge branch 'master' into laggy-move-resize
Diffstat (limited to 'rootston/keyboard.c')
-rw-r--r-- | rootston/keyboard.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/rootston/keyboard.c b/rootston/keyboard.c index 39f46a32..f3fc9a85 100644 --- a/rootston/keyboard.c +++ b/rootston/keyboard.c @@ -87,20 +87,16 @@ static const char *exec_prefix = "exec "; static void keyboard_binding_execute(struct roots_keyboard *keyboard, const char *command) { - struct roots_server *server = keyboard->input->server; + struct roots_seat *seat = keyboard->seat; if (strcmp(command, "exit") == 0) { - wl_display_terminate(server->wl_display); + wl_display_terminate(keyboard->input->server->wl_display); } else if (strcmp(command, "close") == 0) { - if (server->desktop->views->length > 0) { - struct roots_view *view = - server->desktop->views->items[server->desktop->views->length-1]; - view_close(view); + struct roots_view *focus = roots_seat_get_focus(seat); + if (focus != NULL) { + view_close(focus); } } else if (strcmp(command, "next_window") == 0) { - if (server->desktop->views->length > 0) { - struct roots_view *view = server->desktop->views->items[0]; - roots_seat_focus_view(keyboard->seat, view); - } + roots_seat_cycle_focus(seat); } else if (strncmp(exec_prefix, command, strlen(exec_prefix)) == 0) { const char *shell_cmd = command + strlen(exec_prefix); pid_t pid = fork(); |