Commit ea6d657aaf53a76e87e08bae66a3131763170984 Parent: 37a22d4982455ac7ce7237d38269ba5e986a8fe6 Author: mcol <mcol@posteo.net> Date: 2020-11-11 16:14:06 +0000 Committer: mcol <mcol@posteo.net> Committed: 2020-11-11 16:14:06 +0000 add close_current_window and bind to mod+S+q
src/shell.h Modified
@@ -3,6 +3,7 @@ #include "types.h" +void close_current_window(struct server *server); void unmap_view(struct view *view); void map_view(struct view *view); void focus_view(struct view *view, struct wlr_surface *surface);
src/shell.c Modified
@@ -5,6 +5,17 @@ #include "types.h" +void close_current_window(struct server *server) { + struct wlr_surface *surface = server->seat->keyboard_state.focused_surface; + if (surface) { + struct wlr_xdg_surface *xdg_surface = surface->role_data; + if (xdg_surface->role == WLR_XDG_SURFACE_ROLE_TOPLEVEL && xdg_surface->toplevel) { + xdg_toplevel_send_close(xdg_surface->toplevel->resource); + } + } +} + + void unmap_view(struct view *view) { wl_signal_emit(&view->surface->events.unmap, view); }
src/input.c Modified
@@ -229,6 +229,10 @@ next_desk(server); break; + case XKB_KEY_Q: + close_current_window(server); + break; + case XKB_KEY_r: reset_pan(server->current_desk); break;