diff --git a/src/tests/meta-wayland-test-driver.c b/src/tests/meta-wayland-test-driver.c index 079ea1c8d..ebb6c1498 100644 --- a/src/tests/meta-wayland-test-driver.c +++ b/src/tests/meta-wayland-test-driver.c @@ -249,12 +249,52 @@ verify_view (struct wl_client *client, meta_ref_test_determine_ref_test_flag ()); } +static void +move_to (struct wl_client *client, + struct wl_resource *resource, + struct wl_resource *surface_resource, + int32_t x, + int32_t y) +{ + MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource); + MetaWindow *window = meta_wayland_surface_get_window (surface); + + meta_window_move_frame (window, TRUE, x, y); +} + +static void +tile (struct wl_client *client, + struct wl_resource *resource, + struct wl_resource *surface_resource, + uint32_t direction_value) +{ + enum test_driver_direction direction = direction_value; + MetaWaylandSurface *surface = wl_resource_get_user_data (surface_resource); + MetaWindow *window = meta_wayland_surface_get_window (surface); + + switch (direction) + { + case TEST_DRIVER_DIRECTION_LEFT: + meta_window_tile (window, META_TILE_LEFT); + break; + case TEST_DRIVER_DIRECTION_RIGHT: + meta_window_tile (window, META_TILE_RIGHT); + break; + default: + wl_client_post_implementation_error (client, + "Invalid direction"); + break; + } +} + static const struct test_driver_interface meta_test_driver_interface = { sync_actor_destroy, sync_effects_completed, sync_window_shown, sync_point, verify_view, + move_to, + tile, }; static void diff --git a/src/tests/protocol/test-driver.xml b/src/tests/protocol/test-driver.xml index eefbc3ea1..fd51e1400 100644 --- a/src/tests/protocol/test-driver.xml +++ b/src/tests/protocol/test-driver.xml @@ -26,6 +26,22 @@ + + + + + + + + + + + + + + + +