mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
wayland: Move calc-showing window logic to roles having windows
https://gitlab.gnome.org/GNOME/mutter/merge_requests/835
This commit is contained in:
parent
722ae2b77a
commit
df642eb150
@ -146,6 +146,21 @@ meta_wayland_shell_surface_assigned (MetaWaylandSurfaceRole *surface_role)
|
|||||||
surface_role_class->assigned (surface_role);
|
surface_role_class->assigned (surface_role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_wayland_shell_surface_surface_pre_apply_state (MetaWaylandSurfaceRole *surface_role,
|
||||||
|
MetaWaylandSurfaceState *pending)
|
||||||
|
{
|
||||||
|
MetaWaylandSurface *surface =
|
||||||
|
meta_wayland_surface_role_get_surface (surface_role);
|
||||||
|
MetaWindow *window;
|
||||||
|
|
||||||
|
window = meta_wayland_surface_get_window (surface);
|
||||||
|
if (pending->newly_attached &&
|
||||||
|
!surface->buffer_ref.buffer &&
|
||||||
|
window)
|
||||||
|
meta_window_queue (window, META_QUEUE_CALC_SHOWING);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_shell_surface_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_shell_surface_surface_apply_state (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandSurfaceState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
@ -277,6 +292,8 @@ meta_wayland_shell_surface_class_init (MetaWaylandShellSurfaceClass *klass)
|
|||||||
object_class->finalize = meta_wayland_shell_surface_finalize;
|
object_class->finalize = meta_wayland_shell_surface_finalize;
|
||||||
|
|
||||||
surface_role_class->assigned = meta_wayland_shell_surface_assigned;
|
surface_role_class->assigned = meta_wayland_shell_surface_assigned;
|
||||||
|
surface_role_class->pre_apply_state =
|
||||||
|
meta_wayland_shell_surface_surface_pre_apply_state;
|
||||||
surface_role_class->apply_state =
|
surface_role_class->apply_state =
|
||||||
meta_wayland_shell_surface_surface_apply_state;
|
meta_wayland_shell_surface_surface_apply_state;
|
||||||
surface_role_class->notify_subsurface_state_changed =
|
surface_role_class->notify_subsurface_state_changed =
|
||||||
|
@ -633,12 +633,6 @@ meta_wayland_surface_apply_state (MetaWaylandSurface *surface,
|
|||||||
|
|
||||||
if (state->newly_attached)
|
if (state->newly_attached)
|
||||||
{
|
{
|
||||||
MetaWindow *window;
|
|
||||||
|
|
||||||
window = meta_wayland_surface_get_window (surface);
|
|
||||||
if (!surface->buffer_ref.buffer && window)
|
|
||||||
meta_window_queue (window, META_QUEUE_CALC_SHOWING);
|
|
||||||
|
|
||||||
/* Always release any previously held buffer. If the buffer held is same
|
/* Always release any previously held buffer. If the buffer held is same
|
||||||
* as the newly attached buffer, we still need to release it here, because
|
* as the newly attached buffer, we still need to release it here, because
|
||||||
* wl_surface.attach+commit and wl_buffer.release on the attached buffer
|
* wl_surface.attach+commit and wl_buffer.release on the attached buffer
|
||||||
|
@ -94,6 +94,21 @@ meta_xwayland_surface_assigned (MetaWaylandSurfaceRole *surface_role)
|
|||||||
surface_role_class->assigned (surface_role);
|
surface_role_class->assigned (surface_role);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_xwayland_surface_pre_apply_state (MetaWaylandSurfaceRole *surface_role,
|
||||||
|
MetaWaylandSurfaceState *pending)
|
||||||
|
{
|
||||||
|
MetaWaylandSurface *surface =
|
||||||
|
meta_wayland_surface_role_get_surface (surface_role);
|
||||||
|
MetaWindow *window;
|
||||||
|
|
||||||
|
window = meta_wayland_surface_get_window (surface);
|
||||||
|
if (pending->newly_attached &&
|
||||||
|
surface->buffer_ref.buffer &&
|
||||||
|
window)
|
||||||
|
meta_window_queue (window, META_QUEUE_CALC_SHOWING);
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_xwayland_surface_get_relative_coordinates (MetaWaylandSurfaceRole *surface_role,
|
meta_xwayland_surface_get_relative_coordinates (MetaWaylandSurfaceRole *surface_role,
|
||||||
float abs_x,
|
float abs_x,
|
||||||
@ -175,6 +190,7 @@ meta_xwayland_surface_class_init (MetaXwaylandSurfaceClass *klass)
|
|||||||
object_class->finalize = meta_xwayland_surface_finalize;
|
object_class->finalize = meta_xwayland_surface_finalize;
|
||||||
|
|
||||||
surface_role_class->assigned = meta_xwayland_surface_assigned;
|
surface_role_class->assigned = meta_xwayland_surface_assigned;
|
||||||
|
surface_role_class->pre_apply_state = meta_xwayland_surface_pre_apply_state;
|
||||||
surface_role_class->get_relative_coordinates =
|
surface_role_class->get_relative_coordinates =
|
||||||
meta_xwayland_surface_get_relative_coordinates;
|
meta_xwayland_surface_get_relative_coordinates;
|
||||||
surface_role_class->get_toplevel = meta_xwayland_surface_get_toplevel;
|
surface_role_class->get_toplevel = meta_xwayland_surface_get_toplevel;
|
||||||
|
Loading…
Reference in New Issue
Block a user