summaryrefslogtreecommitdiffstats
path: root/include/sway
diff options
context:
space:
mode:
Diffstat (limited to 'include/sway')
-rw-r--r--include/sway/config.h2
-rw-r--r--include/sway/input/seat.h2
-rw-r--r--include/sway/ipc-server.h2
-rw-r--r--include/sway/output.h8
-rw-r--r--include/sway/tree/container.h11
-rw-r--r--include/sway/tree/view.h16
6 files changed, 29 insertions, 12 deletions
diff --git a/include/sway/config.h b/include/sway/config.h
index 0f74b439..909b6827 100644
--- a/include/sway/config.h
+++ b/include/sway/config.h
@@ -488,8 +488,6 @@ int sway_binding_cmp_keys(const void *a, const void *b);
488 488
489void free_sway_binding(struct sway_binding *sb); 489void free_sway_binding(struct sway_binding *sb);
490 490
491struct sway_binding *sway_binding_dup(struct sway_binding *sb);
492
493void seat_execute_command(struct sway_seat *seat, struct sway_binding *binding); 491void seat_execute_command(struct sway_seat *seat, struct sway_binding *binding);
494 492
495void load_swaybars(); 493void load_swaybars();
diff --git a/include/sway/input/seat.h b/include/sway/input/seat.h
index 07febe2c..92387601 100644
--- a/include/sway/input/seat.h
+++ b/include/sway/input/seat.h
@@ -99,7 +99,7 @@ void seat_configure_xcursor(struct sway_seat *seat);
99void seat_set_focus(struct sway_seat *seat, struct sway_container *container); 99void seat_set_focus(struct sway_seat *seat, struct sway_container *container);
100 100
101void seat_set_focus_warp(struct sway_seat *seat, 101void seat_set_focus_warp(struct sway_seat *seat,
102 struct sway_container *container, bool warp); 102 struct sway_container *container, bool warp, bool notify);
103 103
104void seat_set_focus_surface(struct sway_seat *seat, 104void seat_set_focus_surface(struct sway_seat *seat,
105 struct wlr_surface *surface, bool unfocus); 105 struct wlr_surface *surface, bool unfocus);
diff --git a/include/sway/ipc-server.h b/include/sway/ipc-server.h
index 6469f097..4b6d0e25 100644
--- a/include/sway/ipc-server.h
+++ b/include/sway/ipc-server.h
@@ -16,5 +16,7 @@ void ipc_event_workspace(struct sway_container *old,
16void ipc_event_window(struct sway_container *window, const char *change); 16void ipc_event_window(struct sway_container *window, const char *change);
17void ipc_event_barconfig_update(struct bar_config *bar); 17void ipc_event_barconfig_update(struct bar_config *bar);
18void ipc_event_mode(const char *mode, bool pango); 18void ipc_event_mode(const char *mode, bool pango);
19void ipc_event_shutdown(const char *reason);
20void ipc_event_binding(struct sway_binding *binding);
19 21
20#endif 22#endif
diff --git a/include/sway/output.h b/include/sway/output.h
index 6283db68..80dcd37b 100644
--- a/include/sway/output.h
+++ b/include/sway/output.h
@@ -67,10 +67,18 @@ struct sway_container *output_get_active_workspace(struct sway_output *output);
67void output_render(struct sway_output *output, struct timespec *when, 67void output_render(struct sway_output *output, struct timespec *when,
68 pixman_region32_t *damage); 68 pixman_region32_t *damage);
69 69
70void output_surface_for_each_surface(struct sway_output *output,
71 struct wlr_surface *surface, double ox, double oy,
72 sway_surface_iterator_func_t iterator, void *user_data);
73
70void output_view_for_each_surface(struct sway_output *output, 74void output_view_for_each_surface(struct sway_output *output,
71 struct sway_view *view, sway_surface_iterator_func_t iterator, 75 struct sway_view *view, sway_surface_iterator_func_t iterator,
72 void *user_data); 76 void *user_data);
73 77
78void output_view_for_each_popup(struct sway_output *output,
79 struct sway_view *view, sway_surface_iterator_func_t iterator,
80 void *user_data);
81
74void output_layer_for_each_surface(struct sway_output *output, 82void output_layer_for_each_surface(struct sway_output *output,
75 struct wl_list *layer_surfaces, sway_surface_iterator_func_t iterator, 83 struct wl_list *layer_surfaces, sway_surface_iterator_func_t iterator,
76 void *user_data); 84 void *user_data);
diff --git a/include/sway/tree/container.h b/include/sway/tree/container.h
index d4a42a71..12ff8a5a 100644
--- a/include/sway/tree/container.h
+++ b/include/sway/tree/container.h
@@ -230,18 +230,11 @@ struct sway_container *container_parent(struct sway_container *container,
230 * surface-local coordinates of the given layout coordinates if the container 230 * surface-local coordinates of the given layout coordinates if the container
231 * is a view and the view contains a surface at those coordinates. 231 * is a view and the view contains a surface at those coordinates.
232 */ 232 */
233struct sway_container *container_at(struct sway_container *container, 233struct sway_container *container_at(struct sway_container *workspace,
234 double ox, double oy, struct wlr_surface **surface, 234 double lx, double ly, struct wlr_surface **surface,
235 double *sx, double *sy); 235 double *sx, double *sy);
236 236
237/** 237/**
238 * Same as container_at, but only checks floating views and expects coordinates
239 * to be layout coordinates, as that's what floating views use.
240 */
241struct sway_container *floating_container_at(double lx, double ly,
242 struct wlr_surface **surface, double *sx, double *sy);
243
244/**
245 * Apply the function for each descendant of the container breadth first. 238 * Apply the function for each descendant of the container breadth first.
246 */ 239 */
247void container_for_each_descendant_bfs(struct sway_container *container, 240void container_for_each_descendant_bfs(struct sway_container *container,
diff --git a/include/sway/tree/view.h b/include/sway/tree/view.h
index 0f9b0bb2..37fd02bc 100644
--- a/include/sway/tree/view.h
+++ b/include/sway/tree/view.h
@@ -47,7 +47,10 @@ struct sway_view_impl {
47 bool (*has_client_side_decorations)(struct sway_view *view); 47 bool (*has_client_side_decorations)(struct sway_view *view);
48 void (*for_each_surface)(struct sway_view *view, 48 void (*for_each_surface)(struct sway_view *view,
49 wlr_surface_iterator_func_t iterator, void *user_data); 49 wlr_surface_iterator_func_t iterator, void *user_data);
50 void (*for_each_popup)(struct sway_view *view,
51 wlr_surface_iterator_func_t iterator, void *user_data);
50 void (*close)(struct sway_view *view); 52 void (*close)(struct sway_view *view);
53 void (*close_popups)(struct sway_view *view);
51 void (*destroy)(struct sway_view *view); 54 void (*destroy)(struct sway_view *view);
52}; 55};
53 56
@@ -249,11 +252,22 @@ void view_set_tiled(struct sway_view *view, bool tiled);
249 252
250void view_close(struct sway_view *view); 253void view_close(struct sway_view *view);
251 254
255void view_close_popups(struct sway_view *view);
256
252void view_damage_from(struct sway_view *view); 257void view_damage_from(struct sway_view *view);
253 258
259/**
260 * Iterate all surfaces of a view (toplevels + popups).
261 */
254void view_for_each_surface(struct sway_view *view, 262void view_for_each_surface(struct sway_view *view,
255 wlr_surface_iterator_func_t iterator, void *user_data); 263 wlr_surface_iterator_func_t iterator, void *user_data);
256 264
265/**
266 * Iterate all popups recursively.
267 */
268void view_for_each_popup(struct sway_view *view,
269 wlr_surface_iterator_func_t iterator, void *user_data);
270
257// view implementation 271// view implementation
258 272
259void view_init(struct sway_view *view, enum sway_view_type type, 273void view_init(struct sway_view *view, enum sway_view_type type,
@@ -314,6 +328,8 @@ void view_clear_marks(struct sway_view *view);
314 328
315bool view_has_mark(struct sway_view *view, char *mark); 329bool view_has_mark(struct sway_view *view, char *mark);
316 330
331void view_add_mark(struct sway_view *view, char *mark);
332
317void view_update_marks_textures(struct sway_view *view); 333void view_update_marks_textures(struct sway_view *view);
318 334
319/** 335/**