mirror of
https://github.com/brl/mutter.git
synced 2024-11-26 01:50:42 -05:00
wayland: Use surface role when special casing surface commits
Lets use the role when doing role specific commit actions. The conditions effectively do that anyway, and this way we will get a compiler warning here whenever we add a new role, as well as we avoid having different variants of role-determination checks in different places. https://bugzilla.gnome.org/show_bug.cgi?id=744453
This commit is contained in:
parent
bede9970de
commit
6ec7fa2cbd
@ -528,14 +528,25 @@ apply_pending_state (MetaWaylandSurface *surface,
|
|||||||
wl_list_insert_list (&compositor->frame_callbacks, &pending->frame_callback_list);
|
wl_list_insert_list (&compositor->frame_callbacks, &pending->frame_callback_list);
|
||||||
wl_list_init (&pending->frame_callback_list);
|
wl_list_init (&pending->frame_callback_list);
|
||||||
|
|
||||||
if (surface == compositor->seat->pointer.cursor_surface)
|
switch (surface->role)
|
||||||
|
{
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_NONE:
|
||||||
|
break;
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_CURSOR:
|
||||||
cursor_surface_commit (surface, pending);
|
cursor_surface_commit (surface, pending);
|
||||||
else if (meta_wayland_data_device_is_dnd_surface (&compositor->seat->data_device, surface))
|
break;
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_DND:
|
||||||
dnd_surface_commit (surface, pending);
|
dnd_surface_commit (surface, pending);
|
||||||
else if (surface->window)
|
break;
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_XDG_SURFACE:
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_XDG_POPUP:
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_WL_SHELL_SURFACE:
|
||||||
toplevel_surface_commit (surface, pending);
|
toplevel_surface_commit (surface, pending);
|
||||||
else if (surface->wl_subsurface)
|
break;
|
||||||
|
case META_WAYLAND_SURFACE_ROLE_SUBSURFACE:
|
||||||
subsurface_surface_commit (surface, pending);
|
subsurface_surface_commit (surface, pending);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
pending_state_reset (pending);
|
pending_state_reset (pending);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user