wayland/surface: Rename MetaWaylandPendingState to MetaWaylandSurfaceState
The name didn't communicate it was about surface state, and it somewhat confusingly had the name "pending" in it, which could be confused with the fact that while it's used to collect pending state, it's also used to cache previously committed pending state. https://gitlab.gnome.org/GNOME/mutter/merge_requests/907
This commit is contained in:
parent
d60d671fec
commit
bbec8abb68
@ -109,7 +109,7 @@ meta_wayland_actor_surface_assigned (MetaWaylandSurfaceRole *surface_role)
|
|||||||
|
|
||||||
void
|
void
|
||||||
meta_wayland_actor_surface_queue_frame_callbacks (MetaWaylandActorSurface *actor_surface,
|
meta_wayland_actor_surface_queue_frame_callbacks (MetaWaylandActorSurface *actor_surface,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandActorSurfacePrivate *priv =
|
MetaWaylandActorSurfacePrivate *priv =
|
||||||
meta_wayland_actor_surface_get_instance_private (actor_surface);
|
meta_wayland_actor_surface_get_instance_private (actor_surface);
|
||||||
@ -240,7 +240,7 @@ meta_wayland_actor_surface_sync_actor_state (MetaWaylandActorSurface *actor_surf
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_actor_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_actor_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandActorSurface *actor_surface =
|
MetaWaylandActorSurface *actor_surface =
|
||||||
META_WAYLAND_ACTOR_SURFACE (surface_role);
|
META_WAYLAND_ACTOR_SURFACE (surface_role);
|
||||||
|
@ -43,6 +43,6 @@ MetaSurfaceActor * meta_wayland_actor_surface_get_actor (MetaWaylandActorSurface
|
|||||||
void meta_wayland_actor_surface_reset_actor (MetaWaylandActorSurface *actor_surface);
|
void meta_wayland_actor_surface_reset_actor (MetaWaylandActorSurface *actor_surface);
|
||||||
|
|
||||||
void meta_wayland_actor_surface_queue_frame_callbacks (MetaWaylandActorSurface *actor_surface,
|
void meta_wayland_actor_surface_queue_frame_callbacks (MetaWaylandActorSurface *actor_surface,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
|
|
||||||
#endif /* META_WAYLAND_ACTOR_SURFACE_H */
|
#endif /* META_WAYLAND_ACTOR_SURFACE_H */
|
||||||
|
@ -130,7 +130,7 @@ meta_wayland_cursor_surface_assigned (MetaWaylandSurfaceRole *surface_role)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_cursor_surface_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_cursor_surface_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandCursorSurface *cursor_surface =
|
MetaWaylandCursorSurface *cursor_surface =
|
||||||
META_WAYLAND_CURSOR_SURFACE (surface_role);
|
META_WAYLAND_CURSOR_SURFACE (surface_role);
|
||||||
@ -148,7 +148,7 @@ meta_wayland_cursor_surface_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_cursor_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_cursor_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandCursorSurface *cursor_surface =
|
MetaWaylandCursorSurface *cursor_surface =
|
||||||
META_WAYLAND_CURSOR_SURFACE (surface_role);
|
META_WAYLAND_CURSOR_SURFACE (surface_role);
|
||||||
|
@ -47,7 +47,7 @@ dnd_surface_assigned (MetaWaylandSurfaceRole *surface_role)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
dnd_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
dnd_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface =
|
MetaWaylandSurface *surface =
|
||||||
meta_wayland_surface_role_get_surface (surface_role);
|
meta_wayland_surface_role_get_surface (surface_role);
|
||||||
|
@ -340,7 +340,7 @@ zxdg_toplevel_v6_set_max_size (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
|
|
||||||
window = surface->window;
|
window = surface->window;
|
||||||
@ -369,7 +369,7 @@ zxdg_toplevel_v6_set_min_size (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
MetaWindow *window;
|
MetaWindow *window;
|
||||||
|
|
||||||
window = surface->window;
|
window = surface->window;
|
||||||
@ -623,7 +623,7 @@ meta_wayland_zxdg_toplevel_v6_send_configure (MetaWaylandZxdgToplevelV6 *xdg_top
|
|||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
is_new_size_hints_valid (MetaWindow *window,
|
is_new_size_hints_valid (MetaWindow *window,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
int new_min_width, new_min_height;
|
int new_min_width, new_min_height;
|
||||||
int new_max_width, new_max_height;
|
int new_max_width, new_max_height;
|
||||||
@ -654,7 +654,7 @@ is_new_size_hints_valid (MetaWindow *window,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_zxdg_toplevel_v6_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_zxdg_toplevel_v6_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandZxdgToplevelV6 *xdg_toplevel =
|
MetaWaylandZxdgToplevelV6 *xdg_toplevel =
|
||||||
META_WAYLAND_ZXDG_TOPLEVEL_V6 (surface_role);
|
META_WAYLAND_ZXDG_TOPLEVEL_V6 (surface_role);
|
||||||
@ -971,7 +971,7 @@ finish_popup_setup (MetaWaylandZxdgPopupV6 *xdg_popup)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_zxdg_popup_v6_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_zxdg_popup_v6_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandZxdgPopupV6 *xdg_popup = META_WAYLAND_ZXDG_POPUP_V6 (surface_role);
|
MetaWaylandZxdgPopupV6 *xdg_popup = META_WAYLAND_ZXDG_POPUP_V6 (surface_role);
|
||||||
MetaWaylandZxdgSurfaceV6 *xdg_surface =
|
MetaWaylandZxdgSurfaceV6 *xdg_surface =
|
||||||
@ -1292,7 +1292,7 @@ zxdg_surface_v6_set_window_geometry (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = surface_from_xdg_surface_resource (resource);
|
MetaWaylandSurface *surface = surface_from_xdg_surface_resource (resource);
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
pending = meta_wayland_surface_get_pending_state (surface);
|
pending = meta_wayland_surface_get_pending_state (surface);
|
||||||
pending->has_new_geometry = TRUE;
|
pending->has_new_geometry = TRUE;
|
||||||
@ -1337,7 +1337,7 @@ meta_wayland_zxdg_surface_v6_finalize (GObject *object)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_zxdg_surface_v6_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_zxdg_surface_v6_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandZxdgSurfaceV6 *xdg_surface =
|
MetaWaylandZxdgSurfaceV6 *xdg_surface =
|
||||||
META_WAYLAND_ZXDG_SURFACE_V6 (surface_role);
|
META_WAYLAND_ZXDG_SURFACE_V6 (surface_role);
|
||||||
|
@ -661,7 +661,7 @@ pending_constraint_state_free (MetaWaylandPendingConstraintState *constraint_pen
|
|||||||
}
|
}
|
||||||
|
|
||||||
static MetaWaylandPendingConstraintStateContainer *
|
static MetaWaylandPendingConstraintStateContainer *
|
||||||
get_pending_constraint_state_container (MetaWaylandPendingState *pending)
|
get_pending_constraint_state_container (MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
return g_object_get_qdata (G_OBJECT (pending),
|
return g_object_get_qdata (G_OBJECT (pending),
|
||||||
quark_pending_constraint_state);
|
quark_pending_constraint_state);
|
||||||
@ -670,7 +670,7 @@ get_pending_constraint_state_container (MetaWaylandPendingState *pending)
|
|||||||
static MetaWaylandPendingConstraintState *
|
static MetaWaylandPendingConstraintState *
|
||||||
get_pending_constraint_state (MetaWaylandPointerConstraint *constraint)
|
get_pending_constraint_state (MetaWaylandPointerConstraint *constraint)
|
||||||
{
|
{
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
MetaWaylandPendingConstraintStateContainer *container;
|
MetaWaylandPendingConstraintStateContainer *container;
|
||||||
GList *l;
|
GList *l;
|
||||||
|
|
||||||
@ -696,7 +696,7 @@ pending_constraint_state_container_free (MetaWaylandPendingConstraintStateContai
|
|||||||
}
|
}
|
||||||
|
|
||||||
static MetaWaylandPendingConstraintStateContainer *
|
static MetaWaylandPendingConstraintStateContainer *
|
||||||
ensure_pending_constraint_state_container (MetaWaylandPendingState *pending)
|
ensure_pending_constraint_state_container (MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandPendingConstraintStateContainer *container;
|
MetaWaylandPendingConstraintStateContainer *container;
|
||||||
|
|
||||||
@ -716,7 +716,7 @@ ensure_pending_constraint_state_container (MetaWaylandPendingState *pending)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
remove_pending_constraint_state (MetaWaylandPointerConstraint *constraint,
|
remove_pending_constraint_state (MetaWaylandPointerConstraint *constraint,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandPendingConstraintStateContainer *container;
|
MetaWaylandPendingConstraintStateContainer *container;
|
||||||
GList *l;
|
GList *l;
|
||||||
@ -736,7 +736,7 @@ remove_pending_constraint_state (MetaWaylandPointerConstraint *constraint,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pending_constraint_state_applied (MetaWaylandPendingState *pending,
|
pending_constraint_state_applied (MetaWaylandSurfaceState *pending,
|
||||||
MetaWaylandPendingConstraintState *constraint_pending)
|
MetaWaylandPendingConstraintState *constraint_pending)
|
||||||
{
|
{
|
||||||
MetaWaylandPointerConstraint *constraint = constraint_pending->constraint;
|
MetaWaylandPointerConstraint *constraint = constraint_pending->constraint;
|
||||||
@ -766,7 +766,7 @@ pending_constraint_state_applied (MetaWaylandPendingState *pending,
|
|||||||
static MetaWaylandPendingConstraintState *
|
static MetaWaylandPendingConstraintState *
|
||||||
ensure_pending_constraint_state (MetaWaylandPointerConstraint *constraint)
|
ensure_pending_constraint_state (MetaWaylandPointerConstraint *constraint)
|
||||||
{
|
{
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
MetaWaylandPendingConstraintStateContainer *container;
|
MetaWaylandPendingConstraintStateContainer *container;
|
||||||
MetaWaylandPendingConstraintState *constraint_pending;
|
MetaWaylandPendingConstraintState *constraint_pending;
|
||||||
|
|
||||||
|
@ -149,7 +149,7 @@ meta_wayland_shell_surface_managed (MetaWaylandShellSurface *shell_surface,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_shell_surface_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_shell_surface_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandActorSurface *actor_surface =
|
MetaWaylandActorSurface *actor_surface =
|
||||||
META_WAYLAND_ACTOR_SURFACE (surface_role);
|
META_WAYLAND_ACTOR_SURFACE (surface_role);
|
||||||
|
@ -189,7 +189,7 @@ meta_wayland_subsurface_parent_state_applied (MetaWaylandSubsurface *subsurface)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_surface_effectively_synchronized (surface))
|
if (is_surface_effectively_synchronized (surface))
|
||||||
meta_wayland_surface_apply_pending_state (surface, surface->sub.pending);
|
meta_wayland_surface_apply_state (surface, surface->sub.pending);
|
||||||
|
|
||||||
meta_wayland_actor_surface_sync_actor_state (actor_surface);
|
meta_wayland_actor_surface_sync_actor_state (actor_surface);
|
||||||
}
|
}
|
||||||
@ -485,7 +485,7 @@ wl_subsurface_set_desync (struct wl_client *client,
|
|||||||
|
|
||||||
if (was_effectively_synchronized &&
|
if (was_effectively_synchronized &&
|
||||||
!is_surface_effectively_synchronized (surface))
|
!is_surface_effectively_synchronized (surface))
|
||||||
meta_wayland_surface_apply_pending_state (surface, surface->sub.pending);
|
meta_wayland_surface_apply_state (surface, surface->sub.pending);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const struct wl_subsurface_interface meta_wayland_wl_subsurface_interface = {
|
static const struct wl_subsurface_interface meta_wayland_wl_subsurface_interface = {
|
||||||
@ -561,7 +561,7 @@ wl_subcompositor_get_subsurface (struct wl_client *client,
|
|||||||
surface,
|
surface,
|
||||||
wl_subsurface_destructor);
|
wl_subsurface_destructor);
|
||||||
|
|
||||||
surface->sub.pending = g_object_new (META_TYPE_WAYLAND_PENDING_STATE, NULL);
|
surface->sub.pending = g_object_new (META_TYPE_WAYLAND_SURFACE_STATE, NULL);
|
||||||
surface->sub.synchronous = TRUE;
|
surface->sub.synchronous = TRUE;
|
||||||
surface->sub.parent = parent;
|
surface->sub.parent = parent;
|
||||||
surface->sub.parent_destroy_listener.notify =
|
surface->sub.parent_destroy_listener.notify =
|
||||||
|
@ -59,9 +59,9 @@
|
|||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
PENDING_STATE_SIGNAL_APPLIED,
|
SURFACE_STATE_SIGNAL_APPLIED,
|
||||||
|
|
||||||
PENDING_STATE_SIGNAL_LAST_SIGNAL
|
SURFACE_STATE_SIGNAL_N_SIGNALS
|
||||||
};
|
};
|
||||||
|
|
||||||
enum
|
enum
|
||||||
@ -71,7 +71,7 @@ enum
|
|||||||
SURFACE_ROLE_PROP_SURFACE,
|
SURFACE_ROLE_PROP_SURFACE,
|
||||||
};
|
};
|
||||||
|
|
||||||
static guint pending_state_signals[PENDING_STATE_SIGNAL_LAST_SIGNAL];
|
static guint surface_state_signals[SURFACE_STATE_SIGNAL_N_SIGNALS];
|
||||||
|
|
||||||
typedef struct _MetaWaylandSurfaceRolePrivate
|
typedef struct _MetaWaylandSurfaceRolePrivate
|
||||||
{
|
{
|
||||||
@ -84,9 +84,9 @@ G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (MetaWaylandSurfaceRole,
|
|||||||
meta_wayland_surface_role,
|
meta_wayland_surface_role,
|
||||||
G_TYPE_OBJECT)
|
G_TYPE_OBJECT)
|
||||||
|
|
||||||
G_DEFINE_TYPE (MetaWaylandPendingState,
|
G_DEFINE_TYPE (MetaWaylandSurfaceState,
|
||||||
meta_wayland_pending_state,
|
meta_wayland_surface_state,
|
||||||
G_TYPE_OBJECT);
|
G_TYPE_OBJECT)
|
||||||
|
|
||||||
enum
|
enum
|
||||||
{
|
{
|
||||||
@ -107,11 +107,11 @@ meta_wayland_surface_role_assigned (MetaWaylandSurfaceRole *surface_role);
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_surface_role_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_surface_role_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
meta_wayland_surface_role_is_on_logical_monitor (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_surface_role_is_on_logical_monitor (MetaWaylandSurfaceRole *surface_role,
|
||||||
@ -361,7 +361,7 @@ surface_process_damage (MetaWaylandSurface *surface,
|
|||||||
|
|
||||||
void
|
void
|
||||||
meta_wayland_surface_queue_pending_state_frame_callbacks (MetaWaylandSurface *surface,
|
meta_wayland_surface_queue_pending_state_frame_callbacks (MetaWaylandSurface *surface,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
wl_list_insert_list (&surface->compositor->frame_callbacks,
|
wl_list_insert_list (&surface->compositor->frame_callbacks,
|
||||||
&pending->frame_callback_list);
|
&pending->frame_callback_list);
|
||||||
@ -400,14 +400,14 @@ meta_wayland_surface_unref_buffer_use_count (MetaWaylandSurface *surface)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
pending_buffer_resource_destroyed (MetaWaylandBuffer *buffer,
|
pending_buffer_resource_destroyed (MetaWaylandBuffer *buffer,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
g_clear_signal_handler (&pending->buffer_destroy_handler_id, buffer);
|
g_clear_signal_handler (&pending->buffer_destroy_handler_id, buffer);
|
||||||
pending->buffer = NULL;
|
pending->buffer = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pending_state_init (MetaWaylandPendingState *state)
|
meta_wayland_surface_state_set_default (MetaWaylandSurfaceState *state)
|
||||||
{
|
{
|
||||||
state->newly_attached = FALSE;
|
state->newly_attached = FALSE;
|
||||||
state->buffer = NULL;
|
state->buffer = NULL;
|
||||||
@ -435,7 +435,7 @@ pending_state_init (MetaWaylandPendingState *state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pending_state_destroy (MetaWaylandPendingState *state)
|
meta_wayland_surface_state_clear (MetaWaylandSurfaceState *state)
|
||||||
{
|
{
|
||||||
MetaWaylandFrameCallback *cb, *next;
|
MetaWaylandFrameCallback *cb, *next;
|
||||||
|
|
||||||
@ -452,15 +452,15 @@ pending_state_destroy (MetaWaylandPendingState *state)
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
pending_state_reset (MetaWaylandPendingState *state)
|
meta_wayland_surface_state_reset (MetaWaylandSurfaceState *state)
|
||||||
{
|
{
|
||||||
pending_state_destroy (state);
|
meta_wayland_surface_state_clear (state);
|
||||||
pending_state_init (state);
|
meta_wayland_surface_state_set_default (state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
merge_pending_state (MetaWaylandPendingState *from,
|
meta_wayland_surface_state_merge_into (MetaWaylandSurfaceState *from,
|
||||||
MetaWaylandPendingState *to)
|
MetaWaylandSurfaceState *to)
|
||||||
{
|
{
|
||||||
if (from->newly_attached)
|
if (from->newly_attached)
|
||||||
{
|
{
|
||||||
@ -558,33 +558,33 @@ merge_pending_state (MetaWaylandPendingState *from,
|
|||||||
to);
|
to);
|
||||||
}
|
}
|
||||||
|
|
||||||
pending_state_init (from);
|
meta_wayland_surface_state_set_default (from);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_pending_state_finalize (GObject *object)
|
meta_wayland_surface_state_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
MetaWaylandPendingState *state = META_WAYLAND_PENDING_STATE (object);
|
MetaWaylandSurfaceState *state = META_WAYLAND_SURFACE_STATE (object);
|
||||||
|
|
||||||
pending_state_destroy (state);
|
meta_wayland_surface_state_clear (state);
|
||||||
|
|
||||||
G_OBJECT_CLASS (meta_wayland_pending_state_parent_class)->finalize (object);
|
G_OBJECT_CLASS (meta_wayland_surface_state_parent_class)->finalize (object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_pending_state_init (MetaWaylandPendingState *state)
|
meta_wayland_surface_state_init (MetaWaylandSurfaceState *state)
|
||||||
{
|
{
|
||||||
pending_state_init (state);
|
meta_wayland_surface_state_set_default (state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_pending_state_class_init (MetaWaylandPendingStateClass *klass)
|
meta_wayland_surface_state_class_init (MetaWaylandSurfaceStateClass *klass)
|
||||||
{
|
{
|
||||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||||
|
|
||||||
object_class->finalize = meta_wayland_pending_state_finalize;
|
object_class->finalize = meta_wayland_surface_state_finalize;
|
||||||
|
|
||||||
pending_state_signals[PENDING_STATE_SIGNAL_APPLIED] =
|
surface_state_signals[SURFACE_STATE_SIGNAL_APPLIED] =
|
||||||
g_signal_new ("applied",
|
g_signal_new ("applied",
|
||||||
G_TYPE_FROM_CLASS (object_class),
|
G_TYPE_FROM_CLASS (object_class),
|
||||||
G_SIGNAL_RUN_LAST,
|
G_SIGNAL_RUN_LAST,
|
||||||
@ -609,7 +609,7 @@ parent_surface_state_applied (GNode *subsurface_node,
|
|||||||
|
|
||||||
void
|
void
|
||||||
meta_wayland_surface_cache_pending_frame_callbacks (MetaWaylandSurface *surface,
|
meta_wayland_surface_cache_pending_frame_callbacks (MetaWaylandSurface *surface,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
wl_list_insert_list (&surface->pending_frame_callback_list,
|
wl_list_insert_list (&surface->pending_frame_callback_list,
|
||||||
&pending->frame_callback_list);
|
&pending->frame_callback_list);
|
||||||
@ -617,8 +617,8 @@ meta_wayland_surface_cache_pending_frame_callbacks (MetaWaylandSurface *sur
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
|
meta_wayland_surface_apply_state (MetaWaylandSurface *surface,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *state)
|
||||||
{
|
{
|
||||||
gboolean had_damage = FALSE;
|
gboolean had_damage = FALSE;
|
||||||
|
|
||||||
@ -626,18 +626,18 @@ meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
|
|||||||
|
|
||||||
if (surface->role)
|
if (surface->role)
|
||||||
{
|
{
|
||||||
meta_wayland_surface_role_pre_commit (surface->role, pending);
|
meta_wayland_surface_role_pre_commit (surface->role, state);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (pending->newly_attached && surface->unassigned.buffer)
|
if (state->newly_attached && surface->unassigned.buffer)
|
||||||
{
|
{
|
||||||
meta_wayland_surface_unref_buffer_use_count (surface);
|
meta_wayland_surface_unref_buffer_use_count (surface);
|
||||||
g_clear_object (&surface->unassigned.buffer);
|
g_clear_object (&surface->unassigned.buffer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pending->newly_attached)
|
if (state->newly_attached)
|
||||||
{
|
{
|
||||||
if (!surface->buffer_ref.buffer && surface->window)
|
if (!surface->buffer_ref.buffer && surface->window)
|
||||||
meta_window_queue (surface->window, META_QUEUE_CALC_SHOWING);
|
meta_window_queue (surface->window, META_QUEUE_CALC_SHOWING);
|
||||||
@ -650,17 +650,17 @@ meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
|
|||||||
if (surface->buffer_held)
|
if (surface->buffer_held)
|
||||||
meta_wayland_surface_unref_buffer_use_count (surface);
|
meta_wayland_surface_unref_buffer_use_count (surface);
|
||||||
|
|
||||||
g_set_object (&surface->buffer_ref.buffer, pending->buffer);
|
g_set_object (&surface->buffer_ref.buffer, state->buffer);
|
||||||
|
|
||||||
if (pending->buffer)
|
if (state->buffer)
|
||||||
meta_wayland_surface_ref_buffer_use_count (surface);
|
meta_wayland_surface_ref_buffer_use_count (surface);
|
||||||
|
|
||||||
if (pending->buffer)
|
if (state->buffer)
|
||||||
{
|
{
|
||||||
GError *error = NULL;
|
GError *error = NULL;
|
||||||
gboolean changed_texture;
|
gboolean changed_texture;
|
||||||
|
|
||||||
if (!meta_wayland_buffer_attach (pending->buffer,
|
if (!meta_wayland_buffer_attach (state->buffer,
|
||||||
&surface->texture,
|
&surface->texture,
|
||||||
&changed_texture,
|
&changed_texture,
|
||||||
&error))
|
&error))
|
||||||
@ -683,8 +683,8 @@ meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
|
|||||||
|
|
||||||
stex = meta_surface_actor_get_texture (meta_wayland_surface_get_actor (surface));
|
stex = meta_surface_actor_get_texture (meta_wayland_surface_get_actor (surface));
|
||||||
texture = surface->texture;
|
texture = surface->texture;
|
||||||
snippet = meta_wayland_buffer_create_snippet (pending->buffer);
|
snippet = meta_wayland_buffer_create_snippet (state->buffer);
|
||||||
is_y_inverted = meta_wayland_buffer_is_y_inverted (pending->buffer);
|
is_y_inverted = meta_wayland_buffer_is_y_inverted (state->buffer);
|
||||||
|
|
||||||
meta_shaped_texture_set_texture (stex, texture);
|
meta_shaped_texture_set_texture (stex, texture);
|
||||||
meta_shaped_texture_set_snippet (stex, snippet);
|
meta_shaped_texture_set_snippet (stex, snippet);
|
||||||
@ -702,74 +702,74 @@ meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
|
|||||||
* it until is replaced by a subsequent wl_surface.commit or when the
|
* it until is replaced by a subsequent wl_surface.commit or when the
|
||||||
* wl_surface is destroyed.
|
* wl_surface is destroyed.
|
||||||
*/
|
*/
|
||||||
surface->buffer_held = (pending->buffer &&
|
surface->buffer_held = (state->buffer &&
|
||||||
!wl_shm_buffer_get (pending->buffer->resource));
|
!wl_shm_buffer_get (state->buffer->resource));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pending->scale > 0)
|
if (state->scale > 0)
|
||||||
surface->scale = pending->scale;
|
surface->scale = state->scale;
|
||||||
|
|
||||||
if (pending->has_new_buffer_transform)
|
if (state->has_new_buffer_transform)
|
||||||
surface->buffer_transform = pending->buffer_transform;
|
surface->buffer_transform = state->buffer_transform;
|
||||||
|
|
||||||
if (pending->has_new_viewport_src_rect)
|
if (state->has_new_viewport_src_rect)
|
||||||
{
|
{
|
||||||
surface->viewport.src_rect.origin.x = pending->viewport_src_rect.origin.x;
|
surface->viewport.src_rect.origin.x = state->viewport_src_rect.origin.x;
|
||||||
surface->viewport.src_rect.origin.y = pending->viewport_src_rect.origin.y;
|
surface->viewport.src_rect.origin.y = state->viewport_src_rect.origin.y;
|
||||||
surface->viewport.src_rect.size.width = pending->viewport_src_rect.size.width;
|
surface->viewport.src_rect.size.width = state->viewport_src_rect.size.width;
|
||||||
surface->viewport.src_rect.size.height = pending->viewport_src_rect.size.height;
|
surface->viewport.src_rect.size.height = state->viewport_src_rect.size.height;
|
||||||
surface->viewport.has_src_rect = surface->viewport.src_rect.size.width > 0;
|
surface->viewport.has_src_rect = surface->viewport.src_rect.size.width > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pending->has_new_viewport_dst_size)
|
if (state->has_new_viewport_dst_size)
|
||||||
{
|
{
|
||||||
surface->viewport.dst_width = pending->viewport_dst_width;
|
surface->viewport.dst_width = state->viewport_dst_width;
|
||||||
surface->viewport.dst_height = pending->viewport_dst_height;
|
surface->viewport.dst_height = state->viewport_dst_height;
|
||||||
surface->viewport.has_dst_size = surface->viewport.dst_width > 0;
|
surface->viewport.has_dst_size = surface->viewport.dst_width > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!cairo_region_is_empty (pending->surface_damage) ||
|
if (!cairo_region_is_empty (state->surface_damage) ||
|
||||||
!cairo_region_is_empty (pending->buffer_damage))
|
!cairo_region_is_empty (state->buffer_damage))
|
||||||
{
|
{
|
||||||
surface_process_damage (surface,
|
surface_process_damage (surface,
|
||||||
pending->surface_damage,
|
state->surface_damage,
|
||||||
pending->buffer_damage);
|
state->buffer_damage);
|
||||||
had_damage = TRUE;
|
had_damage = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
surface->offset_x += pending->dx;
|
surface->offset_x += state->dx;
|
||||||
surface->offset_y += pending->dy;
|
surface->offset_y += state->dy;
|
||||||
|
|
||||||
if (pending->opaque_region_set)
|
if (state->opaque_region_set)
|
||||||
{
|
{
|
||||||
if (surface->opaque_region)
|
if (surface->opaque_region)
|
||||||
cairo_region_destroy (surface->opaque_region);
|
cairo_region_destroy (surface->opaque_region);
|
||||||
if (pending->opaque_region)
|
if (state->opaque_region)
|
||||||
surface->opaque_region = cairo_region_reference (pending->opaque_region);
|
surface->opaque_region = cairo_region_reference (state->opaque_region);
|
||||||
else
|
else
|
||||||
surface->opaque_region = NULL;
|
surface->opaque_region = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pending->input_region_set)
|
if (state->input_region_set)
|
||||||
{
|
{
|
||||||
if (surface->input_region)
|
if (surface->input_region)
|
||||||
cairo_region_destroy (surface->input_region);
|
cairo_region_destroy (surface->input_region);
|
||||||
if (pending->input_region)
|
if (state->input_region)
|
||||||
surface->input_region = cairo_region_reference (pending->input_region);
|
surface->input_region = cairo_region_reference (state->input_region);
|
||||||
else
|
else
|
||||||
surface->input_region = NULL;
|
surface->input_region = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (surface->role)
|
if (surface->role)
|
||||||
{
|
{
|
||||||
meta_wayland_surface_role_commit (surface->role, pending);
|
meta_wayland_surface_role_commit (surface->role, state);
|
||||||
g_assert (wl_list_empty (&pending->frame_callback_list));
|
g_assert (wl_list_empty (&state->frame_callback_list));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
meta_wayland_surface_cache_pending_frame_callbacks (surface, pending);
|
meta_wayland_surface_cache_pending_frame_callbacks (surface, state);
|
||||||
|
|
||||||
if (pending->newly_attached)
|
if (state->newly_attached)
|
||||||
{
|
{
|
||||||
/* The need to keep the wl_buffer from being released depends on what
|
/* The need to keep the wl_buffer from being released depends on what
|
||||||
* role the surface is given. That means we need to also keep a use
|
* role the surface is given. That means we need to also keep a use
|
||||||
@ -785,15 +785,15 @@ cleanup:
|
|||||||
/* If we have a buffer that we are not using, decrease the use count so it may
|
/* If we have a buffer that we are not using, decrease the use count so it may
|
||||||
* be released if no-one else has a use-reference to it.
|
* be released if no-one else has a use-reference to it.
|
||||||
*/
|
*/
|
||||||
if (pending->newly_attached &&
|
if (state->newly_attached &&
|
||||||
!surface->buffer_held && surface->buffer_ref.buffer)
|
!surface->buffer_held && surface->buffer_ref.buffer)
|
||||||
meta_wayland_surface_unref_buffer_use_count (surface);
|
meta_wayland_surface_unref_buffer_use_count (surface);
|
||||||
|
|
||||||
g_signal_emit (pending,
|
g_signal_emit (state,
|
||||||
pending_state_signals[PENDING_STATE_SIGNAL_APPLIED],
|
surface_state_signals[SURFACE_STATE_SIGNAL_APPLIED],
|
||||||
0);
|
0);
|
||||||
|
|
||||||
pending_state_reset (pending);
|
meta_wayland_surface_state_reset (state);
|
||||||
|
|
||||||
g_node_children_foreach (surface->subsurface_branch_node,
|
g_node_children_foreach (surface->subsurface_branch_node,
|
||||||
G_TRAVERSE_ALL,
|
G_TRAVERSE_ALL,
|
||||||
@ -817,7 +817,7 @@ cleanup:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MetaWaylandPendingState *
|
MetaWaylandSurfaceState *
|
||||||
meta_wayland_surface_get_pending_state (MetaWaylandSurface *surface)
|
meta_wayland_surface_get_pending_state (MetaWaylandSurface *surface)
|
||||||
{
|
{
|
||||||
return surface->pending_state;
|
return surface->pending_state;
|
||||||
@ -826,7 +826,7 @@ meta_wayland_surface_get_pending_state (MetaWaylandSurface *surface)
|
|||||||
static void
|
static void
|
||||||
meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
||||||
{
|
{
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
|
|
||||||
COGL_TRACE_BEGIN_SCOPED (MetaWaylandSurfaceCommit,
|
COGL_TRACE_BEGIN_SCOPED (MetaWaylandSurfaceCommit,
|
||||||
"WaylandSurface (commit)");
|
"WaylandSurface (commit)");
|
||||||
@ -844,9 +844,9 @@ meta_wayland_surface_commit (MetaWaylandSurface *surface)
|
|||||||
* surface is in effective desynchronized mode.
|
* surface is in effective desynchronized mode.
|
||||||
*/
|
*/
|
||||||
if (meta_wayland_surface_should_cache_state (surface))
|
if (meta_wayland_surface_should_cache_state (surface))
|
||||||
merge_pending_state (pending, surface->sub.pending);
|
meta_wayland_surface_state_merge_into (pending, surface->sub.pending);
|
||||||
else
|
else
|
||||||
meta_wayland_surface_apply_pending_state (surface, pending);
|
meta_wayland_surface_apply_state (surface, surface->pending_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -864,7 +864,7 @@ wl_surface_attach (struct wl_client *client,
|
|||||||
{
|
{
|
||||||
MetaWaylandSurface *surface =
|
MetaWaylandSurface *surface =
|
||||||
wl_resource_get_user_data (surface_resource);
|
wl_resource_get_user_data (surface_resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
MetaWaylandBuffer *buffer;
|
MetaWaylandBuffer *buffer;
|
||||||
|
|
||||||
/* X11 unmanaged window */
|
/* X11 unmanaged window */
|
||||||
@ -905,7 +905,7 @@ wl_surface_damage (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
cairo_rectangle_int_t rectangle;
|
cairo_rectangle_int_t rectangle;
|
||||||
|
|
||||||
/* X11 unmanaged window */
|
/* X11 unmanaged window */
|
||||||
@ -938,7 +938,7 @@ wl_surface_frame (struct wl_client *client,
|
|||||||
{
|
{
|
||||||
MetaWaylandFrameCallback *callback;
|
MetaWaylandFrameCallback *callback;
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
|
|
||||||
/* X11 unmanaged window */
|
/* X11 unmanaged window */
|
||||||
if (!surface)
|
if (!surface)
|
||||||
@ -962,7 +962,7 @@ wl_surface_set_opaque_region (struct wl_client *client,
|
|||||||
struct wl_resource *region_resource)
|
struct wl_resource *region_resource)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
|
|
||||||
/* X11 unmanaged window */
|
/* X11 unmanaged window */
|
||||||
if (!surface)
|
if (!surface)
|
||||||
@ -984,7 +984,7 @@ wl_surface_set_input_region (struct wl_client *client,
|
|||||||
struct wl_resource *region_resource)
|
struct wl_resource *region_resource)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
|
|
||||||
/* X11 unmanaged window */
|
/* X11 unmanaged window */
|
||||||
if (!surface)
|
if (!surface)
|
||||||
@ -1047,7 +1047,7 @@ wl_surface_set_buffer_transform (struct wl_client *client,
|
|||||||
int32_t transform)
|
int32_t transform)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
MetaMonitorTransform buffer_transform;
|
MetaMonitorTransform buffer_transform;
|
||||||
|
|
||||||
buffer_transform = transform_from_wl_output_transform (transform);
|
buffer_transform = transform_from_wl_output_transform (transform);
|
||||||
@ -1071,7 +1071,7 @@ wl_surface_set_buffer_scale (struct wl_client *client,
|
|||||||
int scale)
|
int scale)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
|
|
||||||
if (scale <= 0)
|
if (scale <= 0)
|
||||||
{
|
{
|
||||||
@ -1094,7 +1094,7 @@ wl_surface_damage_buffer (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource);
|
||||||
MetaWaylandPendingState *pending = surface->pending_state;
|
MetaWaylandSurfaceState *pending = surface->pending_state;
|
||||||
cairo_rectangle_int_t rectangle;
|
cairo_rectangle_int_t rectangle;
|
||||||
|
|
||||||
/* X11 unmanaged window */
|
/* X11 unmanaged window */
|
||||||
@ -1647,7 +1647,7 @@ meta_wayland_surface_get_absolute_coordinates (MetaWaylandSurface *surface,
|
|||||||
static void
|
static void
|
||||||
meta_wayland_surface_init (MetaWaylandSurface *surface)
|
meta_wayland_surface_init (MetaWaylandSurface *surface)
|
||||||
{
|
{
|
||||||
surface->pending_state = g_object_new (META_TYPE_WAYLAND_PENDING_STATE, NULL);
|
surface->pending_state = g_object_new (META_TYPE_WAYLAND_SURFACE_STATE, NULL);
|
||||||
surface->subsurface_branch_node = g_node_new (surface);
|
surface->subsurface_branch_node = g_node_new (surface);
|
||||||
surface->subsurface_leaf_node =
|
surface->subsurface_leaf_node =
|
||||||
g_node_prepend_data (surface->subsurface_branch_node, surface);
|
g_node_prepend_data (surface->subsurface_branch_node, surface);
|
||||||
@ -1791,7 +1791,7 @@ meta_wayland_surface_role_assigned (MetaWaylandSurfaceRole *surface_role)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_surface_role_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_surface_role_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandSurfaceRoleClass *klass;
|
MetaWaylandSurfaceRoleClass *klass;
|
||||||
|
|
||||||
@ -1802,7 +1802,7 @@ meta_wayland_surface_role_pre_commit (MetaWaylandSurfaceRole *surface_role,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
META_WAYLAND_SURFACE_ROLE_GET_CLASS (surface_role)->commit (surface_role,
|
META_WAYLAND_SURFACE_ROLE_GET_CLASS (surface_role)->commit (surface_role,
|
||||||
pending);
|
pending);
|
||||||
|
@ -33,8 +33,6 @@
|
|||||||
#include "wayland/meta-wayland-pointer-constraints.h"
|
#include "wayland/meta-wayland-pointer-constraints.h"
|
||||||
#include "wayland/meta-wayland-types.h"
|
#include "wayland/meta-wayland-types.h"
|
||||||
|
|
||||||
typedef struct _MetaWaylandPendingState MetaWaylandPendingState;
|
|
||||||
|
|
||||||
#define META_TYPE_WAYLAND_SURFACE (meta_wayland_surface_get_type ())
|
#define META_TYPE_WAYLAND_SURFACE (meta_wayland_surface_get_type ())
|
||||||
G_DECLARE_FINAL_TYPE (MetaWaylandSurface,
|
G_DECLARE_FINAL_TYPE (MetaWaylandSurface,
|
||||||
meta_wayland_surface,
|
meta_wayland_surface,
|
||||||
@ -45,11 +43,11 @@ G_DECLARE_FINAL_TYPE (MetaWaylandSurface,
|
|||||||
G_DECLARE_DERIVABLE_TYPE (MetaWaylandSurfaceRole, meta_wayland_surface_role,
|
G_DECLARE_DERIVABLE_TYPE (MetaWaylandSurfaceRole, meta_wayland_surface_role,
|
||||||
META, WAYLAND_SURFACE_ROLE, GObject);
|
META, WAYLAND_SURFACE_ROLE, GObject);
|
||||||
|
|
||||||
#define META_TYPE_WAYLAND_PENDING_STATE (meta_wayland_pending_state_get_type ())
|
#define META_TYPE_WAYLAND_SURFACE_STATE (meta_wayland_surface_state_get_type ())
|
||||||
G_DECLARE_FINAL_TYPE (MetaWaylandPendingState,
|
G_DECLARE_FINAL_TYPE (MetaWaylandSurfaceState,
|
||||||
meta_wayland_pending_state,
|
meta_wayland_surface_state,
|
||||||
META, WAYLAND_PENDING_STATE,
|
META, WAYLAND_SURFACE_STATE,
|
||||||
GObject);
|
GObject)
|
||||||
|
|
||||||
struct _MetaWaylandSurfaceRoleClass
|
struct _MetaWaylandSurfaceRoleClass
|
||||||
{
|
{
|
||||||
@ -57,9 +55,9 @@ struct _MetaWaylandSurfaceRoleClass
|
|||||||
|
|
||||||
void (*assigned) (MetaWaylandSurfaceRole *surface_role);
|
void (*assigned) (MetaWaylandSurfaceRole *surface_role);
|
||||||
void (*pre_commit) (MetaWaylandSurfaceRole *surface_role,
|
void (*pre_commit) (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
void (*commit) (MetaWaylandSurfaceRole *surface_role,
|
void (*commit) (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
gboolean (*is_on_logical_monitor) (MetaWaylandSurfaceRole *surface_role,
|
gboolean (*is_on_logical_monitor) (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaLogicalMonitor *logical_monitor);
|
MetaLogicalMonitor *logical_monitor);
|
||||||
MetaWaylandSurface * (*get_toplevel) (MetaWaylandSurfaceRole *surface_role);
|
MetaWaylandSurface * (*get_toplevel) (MetaWaylandSurfaceRole *surface_role);
|
||||||
@ -71,7 +69,7 @@ struct _MetaWaylandSerial {
|
|||||||
uint32_t value;
|
uint32_t value;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _MetaWaylandPendingState
|
struct _MetaWaylandSurfaceState
|
||||||
{
|
{
|
||||||
GObject parent;
|
GObject parent;
|
||||||
|
|
||||||
@ -177,7 +175,7 @@ struct _MetaWaylandSurface
|
|||||||
} dnd;
|
} dnd;
|
||||||
|
|
||||||
/* All the pending state that wl_surface.commit will apply. */
|
/* All the pending state that wl_surface.commit will apply. */
|
||||||
MetaWaylandPendingState *pending_state;
|
MetaWaylandSurfaceState *pending_state;
|
||||||
|
|
||||||
/* Extension resources. */
|
/* Extension resources. */
|
||||||
struct wl_resource *wl_subsurface;
|
struct wl_resource *wl_subsurface;
|
||||||
@ -199,7 +197,7 @@ struct _MetaWaylandSurface
|
|||||||
* state here.
|
* state here.
|
||||||
*/
|
*/
|
||||||
gboolean synchronous;
|
gboolean synchronous;
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
int32_t pending_x;
|
int32_t pending_x;
|
||||||
int32_t pending_y;
|
int32_t pending_y;
|
||||||
@ -231,11 +229,11 @@ MetaWaylandSurface *meta_wayland_surface_create (MetaWaylandCompositor *composit
|
|||||||
struct wl_resource *compositor_resource,
|
struct wl_resource *compositor_resource,
|
||||||
guint32 id);
|
guint32 id);
|
||||||
|
|
||||||
MetaWaylandPendingState *
|
MetaWaylandSurfaceState *
|
||||||
meta_wayland_surface_get_pending_state (MetaWaylandSurface *surface);
|
meta_wayland_surface_get_pending_state (MetaWaylandSurface *surface);
|
||||||
|
|
||||||
void meta_wayland_surface_apply_pending_state (MetaWaylandSurface *surface,
|
void meta_wayland_surface_apply_state (MetaWaylandSurface *surface,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *state);
|
||||||
|
|
||||||
gboolean meta_wayland_surface_is_effectively_synchronized (MetaWaylandSurface *surface);
|
gboolean meta_wayland_surface_is_effectively_synchronized (MetaWaylandSurface *surface);
|
||||||
|
|
||||||
@ -282,12 +280,12 @@ gboolean meta_wayland_surface_should_cache_state (MetaWaylandSurface
|
|||||||
MetaWindow * meta_wayland_surface_get_toplevel_window (MetaWaylandSurface *surface);
|
MetaWindow * meta_wayland_surface_get_toplevel_window (MetaWaylandSurface *surface);
|
||||||
|
|
||||||
void meta_wayland_surface_cache_pending_frame_callbacks (MetaWaylandSurface *surface,
|
void meta_wayland_surface_cache_pending_frame_callbacks (MetaWaylandSurface *surface,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
|
|
||||||
void meta_wayland_surface_queue_pending_frame_callbacks (MetaWaylandSurface *surface);
|
void meta_wayland_surface_queue_pending_frame_callbacks (MetaWaylandSurface *surface);
|
||||||
|
|
||||||
void meta_wayland_surface_queue_pending_state_frame_callbacks (MetaWaylandSurface *surface,
|
void meta_wayland_surface_queue_pending_state_frame_callbacks (MetaWaylandSurface *surface,
|
||||||
MetaWaylandPendingState *pending);
|
MetaWaylandSurfaceState *pending);
|
||||||
|
|
||||||
void meta_wayland_surface_get_relative_coordinates (MetaWaylandSurface *surface,
|
void meta_wayland_surface_get_relative_coordinates (MetaWaylandSurface *surface,
|
||||||
float abs_x,
|
float abs_x,
|
||||||
|
@ -37,7 +37,7 @@ static void
|
|||||||
wp_viewport_destructor (struct wl_resource *resource)
|
wp_viewport_destructor (struct wl_resource *resource)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface;
|
MetaWaylandSurface *surface;
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
surface = wl_resource_get_user_data (resource);
|
surface = wl_resource_get_user_data (resource);
|
||||||
if (!surface)
|
if (!surface)
|
||||||
@ -100,7 +100,7 @@ wp_viewport_set_source (struct wl_client *client,
|
|||||||
(new_x == -1 && new_y == -1 &&
|
(new_x == -1 && new_y == -1 &&
|
||||||
new_width == -1 && new_height == -1))
|
new_width == -1 && new_height == -1))
|
||||||
{
|
{
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
pending = meta_wayland_surface_get_pending_state (surface);
|
pending = meta_wayland_surface_get_pending_state (surface);
|
||||||
pending->viewport_src_rect.origin.x = new_x;
|
pending->viewport_src_rect.origin.x = new_x;
|
||||||
@ -139,7 +139,7 @@ wp_viewport_set_destination (struct wl_client *client,
|
|||||||
if ((dst_width > 0 && dst_height > 0) ||
|
if ((dst_width > 0 && dst_height > 0) ||
|
||||||
(dst_width == -1 && dst_height == -1))
|
(dst_width == -1 && dst_height == -1))
|
||||||
{
|
{
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
pending = meta_wayland_surface_get_pending_state (surface);
|
pending = meta_wayland_surface_get_pending_state (surface);
|
||||||
pending->viewport_dst_width = dst_width;
|
pending->viewport_dst_width = dst_width;
|
||||||
|
@ -563,7 +563,7 @@ bind_wl_shell (struct wl_client *client,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
wl_shell_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
wl_shell_surface_role_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandWlShellSurface *wl_shell_surface =
|
MetaWaylandWlShellSurface *wl_shell_surface =
|
||||||
META_WAYLAND_WL_SHELL_SURFACE (surface_role);
|
META_WAYLAND_WL_SHELL_SURFACE (surface_role);
|
||||||
|
@ -346,7 +346,7 @@ xdg_toplevel_set_max_size (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
if (width < 0 || height < 0)
|
if (width < 0 || height < 0)
|
||||||
{
|
{
|
||||||
@ -371,7 +371,7 @@ xdg_toplevel_set_min_size (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
MetaWaylandSurface *surface = surface_from_xdg_toplevel_resource (resource);
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
if (width < 0 || height < 0)
|
if (width < 0 || height < 0)
|
||||||
{
|
{
|
||||||
@ -650,7 +650,7 @@ meta_wayland_xdg_toplevel_send_configure (MetaWaylandXdgToplevel *xdg_toplevel,
|
|||||||
|
|
||||||
static gboolean
|
static gboolean
|
||||||
is_new_size_hints_valid (MetaWindow *window,
|
is_new_size_hints_valid (MetaWindow *window,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
int new_min_width, new_min_height;
|
int new_min_width, new_min_height;
|
||||||
int new_max_width, new_max_height;
|
int new_max_width, new_max_height;
|
||||||
@ -681,7 +681,7 @@ is_new_size_hints_valid (MetaWindow *window,
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_xdg_toplevel_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_xdg_toplevel_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandXdgToplevel *xdg_toplevel = META_WAYLAND_XDG_TOPLEVEL (surface_role);
|
MetaWaylandXdgToplevel *xdg_toplevel = META_WAYLAND_XDG_TOPLEVEL (surface_role);
|
||||||
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (xdg_toplevel);
|
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (xdg_toplevel);
|
||||||
@ -1037,7 +1037,7 @@ finish_popup_setup (MetaWaylandXdgPopup *xdg_popup)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_xdg_popup_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_xdg_popup_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandXdgPopup *xdg_popup = META_WAYLAND_XDG_POPUP (surface_role);
|
MetaWaylandXdgPopup *xdg_popup = META_WAYLAND_XDG_POPUP (surface_role);
|
||||||
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (surface_role);
|
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (surface_role);
|
||||||
@ -1383,7 +1383,7 @@ xdg_surface_set_window_geometry (struct wl_client *client,
|
|||||||
int32_t height)
|
int32_t height)
|
||||||
{
|
{
|
||||||
MetaWaylandSurface *surface = surface_from_xdg_surface_resource (resource);
|
MetaWaylandSurface *surface = surface_from_xdg_surface_resource (resource);
|
||||||
MetaWaylandPendingState *pending;
|
MetaWaylandSurfaceState *pending;
|
||||||
|
|
||||||
pending = meta_wayland_surface_get_pending_state (surface);
|
pending = meta_wayland_surface_get_pending_state (surface);
|
||||||
pending->has_new_geometry = TRUE;
|
pending->has_new_geometry = TRUE;
|
||||||
@ -1440,7 +1440,7 @@ meta_wayland_xdg_surface_real_reset (MetaWaylandXdgSurface *xdg_surface)
|
|||||||
|
|
||||||
static void
|
static void
|
||||||
meta_wayland_xdg_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
meta_wayland_xdg_surface_commit (MetaWaylandSurfaceRole *surface_role,
|
||||||
MetaWaylandPendingState *pending)
|
MetaWaylandSurfaceState *pending)
|
||||||
{
|
{
|
||||||
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (surface_role);
|
MetaWaylandXdgSurface *xdg_surface = META_WAYLAND_XDG_SURFACE (surface_role);
|
||||||
MetaWaylandShellSurface *shell_surface =
|
MetaWaylandShellSurface *shell_surface =
|
||||||
|
Loading…
Reference in New Issue
Block a user