src/xdg.c:180:2: warning: implicit declaration of function 'wlr_xdg_surface_for_each_popup' is invalid in C99 [-Wimplicit-function-declaration]
wlr_xdg_surface_for_each_popup(view->xdg_surface, iterator, data);
^
ld: error: undefined symbol: wlr_xdg_surface_for_each_popup
>>> referenced by xdg.c:180 (src/xdg.c:180)
>>> labwc.p/src_xdg.c.o:(xdg_toplevel_view_for_each_popup)
Based on https://github.com/swaywm/sway/commit/
5438cc158a1b
struct view_impl {
void (*configure)(struct view *view, struct wlr_box geo);
void (*close)(struct view *view);
- void (*for_each_popup)(struct view *view,
+ void (*for_each_popup_surface)(struct view *view,
wlr_surface_iterator_func_t iterator, void *data);
void (*for_each_surface)(struct view *view,
wlr_surface_iterator_func_t iterator, void *data);
void view_maximize(struct view *view, bool maximize);
void view_for_each_surface(struct view *view,
wlr_surface_iterator_func_t iterator, void *user_data);
-void view_for_each_popup(struct view *view,
+void view_for_each_popup_surface(struct view *view,
wlr_surface_iterator_func_t iterator, void *data);
void desktop_focus_view(struct seat *seat, struct view *view);
}
void
-output_view_for_each_popup(struct output *output, struct view *view,
+output_view_for_each_popup_surface(struct output *output, struct view *view,
surface_iterator_func_t iterator, void *user_data)
{
struct surface_iterator_data data = {
wlr_output_layout_output_coords(output->server->output_layout,
output->wlr_output, &data.ox, &data.oy);
- view_for_each_popup(view, output_for_each_surface_iterator, &data);
+ view_for_each_popup_surface(view, output_for_each_surface_iterator, &data);
}
/* for sending frame done */
render_surface_iterator, &data);
}
-static void
-render_popup_iterator(struct output *output, struct wlr_surface *surface,
- struct wlr_box *box, void *data)
-{
- /* Render this popup's surface */
- render_surface_iterator(output, surface, box, data);
-
- /* Render this popup's child toplevels */
- output_surface_for_each_surface(output, surface, box->x, box->y,
- render_surface_iterator, data);
-}
-
static void
render_view_popups(struct view *view, struct output *output,
pixman_region32_t *damage)
struct render_data data = {
.damage = damage,
};
- output_view_for_each_popup(output, view, render_popup_iterator, &data);
+ output_view_for_each_popup_surface(output, view, render_surface_iterator, &data);
}
void
}
void
-view_for_each_popup(struct view *view, wlr_surface_iterator_func_t iterator,
+view_for_each_popup_surface(struct view *view, wlr_surface_iterator_func_t iterator,
void *data)
{
- if (!view->impl->for_each_popup) {
+ if (!view->impl->for_each_popup_surface) {
return;
}
- view->impl->for_each_popup(view, iterator, data);
+ view->impl->for_each_popup_surface(view, iterator, data);
}
}
static void
-xdg_toplevel_view_for_each_popup(struct view *view,
+xdg_toplevel_view_for_each_popup_surface(struct view *view,
wlr_surface_iterator_func_t iterator, void *data)
{
- wlr_xdg_surface_for_each_popup(view->xdg_surface, iterator, data);
+ wlr_xdg_surface_for_each_popup_surface(view->xdg_surface, iterator, data);
}
static void
static const struct view_impl xdg_toplevel_view_impl = {
.configure = xdg_toplevel_view_configure,
.close = xdg_toplevel_view_close,
- .for_each_popup = xdg_toplevel_view_for_each_popup,
+ .for_each_popup_surface = xdg_toplevel_view_for_each_popup_surface,
.for_each_surface = xdg_toplevel_view_for_each_surface,
.map = xdg_toplevel_view_map,
.move = xdg_toplevel_view_move,