diff options
author | emersion <contact@emersion.fr> | 2018-07-27 18:44:36 +0100 |
---|---|---|
committer | emersion <contact@emersion.fr> | 2018-07-29 14:33:26 +0100 |
commit | dbf6dd0daec9e712a002c3e01accbd0fee769fac (patch) | |
tree | 21a9a3e7cae9818aa6b1876dc3fccf8d9a5f470c | |
parent | wip: redesign output_unmanaged_for_each_surface iterator (diff) | |
download | sway-dbf6dd0daec9e712a002c3e01accbd0fee769fac.tar.gz sway-dbf6dd0daec9e712a002c3e01accbd0fee769fac.tar.zst sway-dbf6dd0daec9e712a002c3e01accbd0fee769fac.zip |
wip: redesign output_drag_icons_for_each_surface iterator
-rw-r--r-- | include/sway/output.h | 6 | ||||
-rw-r--r-- | sway/desktop/output.c | 15 | ||||
-rw-r--r-- | sway/desktop/render.c | 4 |
3 files changed, 13 insertions, 12 deletions
diff --git a/include/sway/output.h b/include/sway/output.h index 99b0bcc6..10a14207 100644 --- a/include/sway/output.h +++ b/include/sway/output.h | |||
@@ -103,8 +103,8 @@ void output_unmanaged_for_each_surface(struct sway_output *output, | |||
103 | void *user_data); | 103 | void *user_data); |
104 | #endif | 104 | #endif |
105 | 105 | ||
106 | void output_drag_icons_for_each_surface(struct wl_list *drag_icons, | 106 | void output_drag_icons_for_each_surface(struct sway_output *output, |
107 | struct sway_output *output, struct root_geometry *geo, | 107 | struct wl_list *drag_icons, sway_surface_iterator_func_t iterator, |
108 | wlr_surface_iterator_func_t iterator, void *user_data); | 108 | void *user_data); |
109 | 109 | ||
110 | #endif | 110 | #endif |
diff --git a/sway/desktop/output.c b/sway/desktop/output.c index 9c2a1a07..e83a9a3d 100644 --- a/sway/desktop/output.c +++ b/sway/desktop/output.c | |||
@@ -197,17 +197,18 @@ void output_unmanaged_for_each_surface(struct sway_output *output, | |||
197 | } | 197 | } |
198 | #endif | 198 | #endif |
199 | 199 | ||
200 | void output_drag_icons_for_each_surface(struct wl_list *drag_icons, | 200 | void output_drag_icons_for_each_surface(struct sway_output *output, |
201 | struct sway_output *output, struct root_geometry *geo, | 201 | struct wl_list *drag_icons, sway_surface_iterator_func_t iterator, |
202 | wlr_surface_iterator_func_t iterator, void *user_data) { | 202 | void *user_data) { |
203 | struct sway_drag_icon *drag_icon; | 203 | struct sway_drag_icon *drag_icon; |
204 | wl_list_for_each(drag_icon, drag_icons, link) { | 204 | wl_list_for_each(drag_icon, drag_icons, link) { |
205 | double ox = drag_icon->x - output->swayc->x; | 205 | double ox = drag_icon->x - output->swayc->x; |
206 | double oy = drag_icon->y - output->swayc->y; | 206 | double oy = drag_icon->y - output->swayc->y; |
207 | 207 | ||
208 | if (drag_icon->wlr_drag_icon->mapped) { | 208 | if (drag_icon->wlr_drag_icon->mapped) { |
209 | output_surface_for_each_surface(drag_icon->wlr_drag_icon->surface, | 209 | output_surface_for_each_surface2(output, |
210 | ox, oy, geo, iterator, user_data); | 210 | drag_icon->wlr_drag_icon->surface, ox, oy, 0, |
211 | iterator, user_data); | ||
211 | } | 212 | } |
212 | } | 213 | } |
213 | } | 214 | } |
@@ -303,8 +304,8 @@ static void send_frame_done_unmanaged(struct send_frame_done_data *data, | |||
303 | 304 | ||
304 | static void send_frame_done_drag_icons(struct send_frame_done_data *data, | 305 | static void send_frame_done_drag_icons(struct send_frame_done_data *data, |
305 | struct wl_list *drag_icons) { | 306 | struct wl_list *drag_icons) { |
306 | output_drag_icons_for_each_surface(drag_icons, data->output, &data->root_geo, | 307 | output_drag_icons_for_each_surface(data->output, drag_icons, |
307 | send_frame_done_iterator, data); | 308 | send_frame_done_iterator2, data); |
308 | } | 309 | } |
309 | 310 | ||
310 | static void send_frame_done_container_iterator(struct sway_container *con, | 311 | static void send_frame_done_container_iterator(struct sway_container *con, |
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 8eea19e0..1270b7cf 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c | |||
@@ -179,8 +179,8 @@ static void render_drag_icons(struct sway_output *output, | |||
179 | .damage = damage, | 179 | .damage = damage, |
180 | .alpha = 1.0f, | 180 | .alpha = 1.0f, |
181 | }; | 181 | }; |
182 | output_drag_icons_for_each_surface(drag_icons, output, &data.root_geo, | 182 | output_drag_icons_for_each_surface(output, drag_icons, |
183 | render_surface_iterator, &data); | 183 | render_surface_iterator2, &data); |
184 | } | 184 | } |
185 | 185 | ||
186 | static void render_rect(struct wlr_output *wlr_output, | 186 | static void render_rect(struct wlr_output *wlr_output, |