view: commonize sub-view logic in view_move_to_front/back()

The logic was the same for xdg-shell and xwayland views, so move it from
the view->impl layer out to the view_move_to_front/back() functions.

view->impl->move_to_front/back() still exist for now, in case we want to
add xdg/xwayland-specific logic in future, but they now move only one
view and not sub-views.
This commit is contained in:
John Lindgren 2023-10-20 21:34:29 -04:00 committed by Johan Malm
parent 048d22d473
commit 47e80a488e
5 changed files with 57 additions and 90 deletions

View file

@ -642,28 +642,6 @@ xwayland_view_get_root(struct view *view)
return (struct view *)root->data;
}
static void
xwayland_view_move_to_front(struct view *view)
{
struct view *root = xwayland_view_get_root(view);
/* FIXME: this exact code is repeated in xdg.c */
view_impl_move_to_front(root);
view_impl_move_sub_views(root, LAB_TO_FRONT);
/* make sure view is in front of other sub-views */
if (view != root) {
view_impl_move_to_front(view);
}
}
static void
xwayland_view_move_to_back(struct view *view)
{
struct view *root = xwayland_view_get_root(view);
/* FIXME: this exact code is repeated in xdg.c */
view_impl_move_sub_views(root, LAB_TO_BACK);
view_impl_move_to_back(root);
}
static void
xwayland_view_append_children(struct view *self, struct wl_array *children)
{
@ -749,8 +727,8 @@ static const struct view_impl xwayland_view_impl = {
.unmap = xwayland_view_unmap,
.maximize = xwayland_view_maximize,
.minimize = xwayland_view_minimize,
.move_to_front = xwayland_view_move_to_front,
.move_to_back = xwayland_view_move_to_back,
.move_to_front = view_impl_move_to_front,
.move_to_back = view_impl_move_to_back,
.get_root = xwayland_view_get_root,
.append_children = xwayland_view_append_children,
.is_related = xwayland_view_is_related,