aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/rootston/input.h2
-rw-r--r--rootston/cursor.c1
-rw-r--r--rootston/desktop.c3
-rw-r--r--rootston/keyboard.c6
4 files changed, 5 insertions, 7 deletions
diff --git a/include/rootston/input.h b/include/rootston/input.h
index 9c80be61..b9af5028 100644
--- a/include/rootston/input.h
+++ b/include/rootston/input.h
@@ -94,7 +94,7 @@ struct roots_input {
struct wl_client *cursor_client;
enum roots_cursor_mode mode;
- struct roots_view *active_view, *last_active_view;
+ struct roots_view *active_view;
int offs_x, offs_y;
int view_x, view_y, view_width, view_height;
float view_rotation;
diff --git a/rootston/cursor.c b/rootston/cursor.c
index e8e40aed..1e44e3ae 100644
--- a/rootston/cursor.c
+++ b/rootston/cursor.c
@@ -196,7 +196,6 @@ void set_view_focus(struct roots_input *input, struct roots_desktop *desktop,
if (!view) {
return;
}
- input->last_active_view = view;
size_t index = 0;
for (size_t i = 0; i < desktop->views->length; ++i) {
diff --git a/rootston/desktop.c b/rootston/desktop.c
index df92f0ba..a1d8a632 100644
--- a/rootston/desktop.c
+++ b/rootston/desktop.c
@@ -24,9 +24,6 @@ void view_destroy(struct roots_view *view) {
input->active_view = NULL;
input->mode = ROOTS_CURSOR_PASSTHROUGH;
}
- if (input->last_active_view == view) {
- input->last_active_view = NULL;
- }
for (size_t i = 0; i < desktop->views->length; ++i) {
struct roots_view *_view = desktop->views->items[i];
diff --git a/rootston/keyboard.c b/rootston/keyboard.c
index 142e9c71..c91c326b 100644
--- a/rootston/keyboard.c
+++ b/rootston/keyboard.c
@@ -29,8 +29,10 @@ static void keyboard_binding_execute(struct roots_keyboard *keyboard,
if (strcmp(command, "exit") == 0) {
wl_display_terminate(server->wl_display);
} else if (strcmp(command, "close") == 0) {
- if (keyboard->input->last_active_view != NULL) {
- view_close(keyboard->input->last_active_view);
+ if (server->desktop->views->length > 0) {
+ struct roots_view *view =
+ server->desktop->views->items[server->desktop->views->length-1];
+ view_close(view);
}
} else if (strcmp(command, "next_window") == 0) {
if (server->desktop->views->length > 0) {