mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-31 22:25:21 -04:00
rootston: add per-seat views
This commit is contained in:
parent
10f3be7384
commit
bb6d34e7a5
12 changed files with 161 additions and 123 deletions
|
|
@ -87,19 +87,20 @@ 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);
|
||||
if (!wl_list_empty(&seat->views)) {
|
||||
struct roots_seat_view *first_seat_view = wl_container_of(
|
||||
seat->views.next, first_seat_view, link);
|
||||
view_close(first_seat_view->view);
|
||||
}
|
||||
} 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);
|
||||
if (!wl_list_empty(&seat->views)) {
|
||||
struct roots_seat_view *last_seat_view = wl_container_of(
|
||||
seat->views.prev, last_seat_view, link);
|
||||
roots_seat_focus_view(seat, last_seat_view->view);
|
||||
}
|
||||
} else if (strncmp(exec_prefix, command, strlen(exec_prefix)) == 0) {
|
||||
const char *shell_cmd = command + strlen(exec_prefix);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue