Commit 18d85ea1c7ae2a718a8aaee1efe5365c00a0d105 Parent: 1367fb202f326b60c371f611541c3a9fb62f7989 Author: mcol <mcol@posteo.net> Date: 2020-11-08 17:23:39 +0000 Committer: mcol <mcol@posteo.net> Committed: 2020-11-08 17:23:39 +0000 add unmap_view, map_view, and remove on_unmap listener
src/types.h Modified
@@ -57,7 +57,6 @@ struct server *server; struct wlr_xdg_surface *surface; struct wl_listener map_listener; - struct wl_listener unmap_listener; struct wl_listener destroy_listener; struct wl_listener request_move_listener; struct wl_listener request_resize_listener;
src/shell.h Modified
@@ -3,9 +3,10 @@ #include "types.h" +void unmap_view(struct view *view); +void map_view(struct view *view); void focus_view(struct view *view, struct wlr_surface *surface); void on_map(struct wl_listener *listener, void *data); -void on_unmap(struct wl_listener *listener, void *data); void on_surface_destroy(struct wl_listener *listener, void *data); void process_move_resize(struct view *view, enum cursor_mode mode, uint32_t edges); void on_request_move(struct wl_listener *listener, void *data);
src/shell.c Modified
@@ -5,6 +5,16 @@ #include "types.h" +void unmap_view(struct view *view) { + wl_signal_emit(&view->surface->events.unmap, view); +} + + +void map_view(struct view *view) { + wl_signal_emit(&view->surface->events.map, view); +} + + void focus_view(struct view *view, struct wlr_surface *surface) { if (view == NULL) { return; @@ -41,12 +51,6 @@ } -void on_unmap(struct wl_listener *listener, void *data) { - struct view *view = wl_container_of(listener, view, unmap_listener); - view->is_mapped = false; -} - - void on_surface_destroy(struct wl_listener *listener, void *data) { struct view *view = wl_container_of(listener, view, destroy_listener); wl_list_remove(&view->link); @@ -112,8 +116,6 @@ view->map_listener.notify = on_map; wl_signal_add(&surface->events.map, &view->map_listener); - view->unmap_listener.notify = on_unmap; - wl_signal_add(&surface->events.unmap, &view->unmap_listener); view->destroy_listener.notify = on_surface_destroy; wl_signal_add(&surface->events.destroy, &view->destroy_listener);