mutter/src/wayland/meta-wayland-actor-surface.h
Jonas Ådahl 3e90070b88 tests/wayland: Test subsurface commits after parent was reset
Without 'wayland/surface-actor: Reset and sync subsurface state when
resetting' this test would fail.

This also adds a simple framework for testing lower level Wayland
semantics.

In contrast to the test-client and test-driver framework, which uses
gtk and tests mostly window management related things, this framework is
aimed to run Wayland clients made to test a particular protocol flow,
thus will likely consist of manual lower level Wayland mechanics.

A private protocol is added in order to help out clients do things they
cannot do by themself. The protocol currently only consists of a request
meant to be used for getting a callback when the actor of a given
surface is eventually destroyed. This is different from the wl_surface
being destroyed due to window destroy animations taking an arbitrary
amount of time. It'll be used by the first test added in the next
commit.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/961
2020-01-10 16:01:22 +00:00

52 lines
2.0 KiB
C

/*
* Copyright (C) 2012,2013 Intel Corporation
* Copyright (C) 2013-2017 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*/
#ifndef META_WAYLAND_ACTOR_SURFACE_H
#define META_WAYLAND_ACTOR_SURFACE_H
#include "wayland/meta-wayland-surface.h"
#define META_TYPE_WAYLAND_ACTOR_SURFACE (meta_wayland_actor_surface_get_type ())
G_DECLARE_DERIVABLE_TYPE (MetaWaylandActorSurface,
meta_wayland_actor_surface,
META, WAYLAND_ACTOR_SURFACE,
MetaWaylandSurfaceRole)
struct _MetaWaylandActorSurfaceClass
{
MetaWaylandSurfaceRoleClass parent_class;
double (* get_geometry_scale) (MetaWaylandActorSurface *actor_surface);
void (* sync_actor_state) (MetaWaylandActorSurface *actor_surface);
};
void meta_wayland_actor_surface_sync_actor_state (MetaWaylandActorSurface *actor_surface);
double meta_wayland_actor_surface_get_geometry_scale (MetaWaylandActorSurface *actor_surface);
META_EXPORT_TEST
MetaSurfaceActor * meta_wayland_actor_surface_get_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,
MetaWaylandSurfaceState *pending);
#endif /* META_WAYLAND_ACTOR_SURFACE_H */