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 5438cc158a
This commit is contained in:
Jan Beich 2021-03-13 21:07:11 +00:00 committed by Johan Malm
parent 2ee21e9a82
commit ad07acc13c
4 changed files with 11 additions and 23 deletions

View file

@ -161,7 +161,7 @@ enum deco_part {
struct view_impl { struct view_impl {
void (*configure)(struct view *view, struct wlr_box geo); void (*configure)(struct view *view, struct wlr_box geo);
void (*close)(struct view *view); 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); wlr_surface_iterator_func_t iterator, void *data);
void (*for_each_surface)(struct view *view, void (*for_each_surface)(struct view *view,
wlr_surface_iterator_func_t iterator, void *data); wlr_surface_iterator_func_t iterator, void *data);
@ -302,7 +302,7 @@ void view_unminimize(struct view *view);
void view_maximize(struct view *view, bool maximize); void view_maximize(struct view *view, bool maximize);
void view_for_each_surface(struct view *view, void view_for_each_surface(struct view *view,
wlr_surface_iterator_func_t iterator, void *user_data); 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); wlr_surface_iterator_func_t iterator, void *data);
void desktop_focus_view(struct seat *seat, struct view *view); void desktop_focus_view(struct seat *seat, struct view *view);

View file

@ -223,7 +223,7 @@ output_view_for_each_surface(struct output *output, struct view *view,
} }
void 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) surface_iterator_func_t iterator, void *user_data)
{ {
struct surface_iterator_data data = { struct surface_iterator_data data = {
@ -236,7 +236,7 @@ output_view_for_each_popup(struct output *output, struct view *view,
wlr_output_layout_output_coords(output->server->output_layout, wlr_output_layout_output_coords(output->server->output_layout,
output->wlr_output, &data.ox, &data.oy); 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 */ /* for sending frame done */
@ -572,18 +572,6 @@ render_view_toplevels(struct view *view, struct output *output,
render_surface_iterator, &data); 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 static void
render_view_popups(struct view *view, struct output *output, render_view_popups(struct view *view, struct output *output,
pixman_region32_t *damage) pixman_region32_t *damage)
@ -591,7 +579,7 @@ render_view_popups(struct view *view, struct output *output,
struct render_data data = { struct render_data data = {
.damage = damage, .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 file

@ -89,12 +89,12 @@ view_for_each_surface(struct view *view, wlr_surface_iterator_func_t iterator,
} }
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) void *data)
{ {
if (!view->impl->for_each_popup) { if (!view->impl->for_each_popup_surface) {
return; return;
} }
view->impl->for_each_popup(view, iterator, data); view->impl->for_each_popup_surface(view, iterator, data);
} }

View file

@ -169,10 +169,10 @@ xdg_toplevel_view_close(struct view *view)
} }
static void 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_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 void
@ -247,7 +247,7 @@ xdg_toplevel_view_unmap(struct view *view)
static const struct view_impl xdg_toplevel_view_impl = { static const struct view_impl xdg_toplevel_view_impl = {
.configure = xdg_toplevel_view_configure, .configure = xdg_toplevel_view_configure,
.close = xdg_toplevel_view_close, .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, .for_each_surface = xdg_toplevel_view_for_each_surface,
.map = xdg_toplevel_view_map, .map = xdg_toplevel_view_map,
.move = xdg_toplevel_view_move, .move = xdg_toplevel_view_move,