[PATCH 3/4] add get_geometry & geometry request/event
Marek Chalupa
mchqwerty at gmail.com
Wed Jul 16 06:52:30 PDT 2014
---
protocol/wayland-test.xml | 11 +++++++++++
tests/weston-test-client-helper.c | 18 ++++++++++++++++++
tests/weston-test-client-helper.h | 6 ++++++
tests/weston-test.c | 23 +++++++++++++++++++++++
4 files changed, 58 insertions(+)
diff --git a/protocol/wayland-test.xml b/protocol/wayland-test.xml
index 18b6625..b4a6bc7 100644
--- a/protocol/wayland-test.xml
+++ b/protocol/wayland-test.xml
@@ -3,6 +3,7 @@
<copyright>
Copyright © 2012 Intel Corporation
+ Copyright © 2014 Red Hat, Inc.
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@ -58,5 +59,15 @@
<event name="n_egl_buffers">
<arg name="n" type="uint"/>
</event>
+ <request name="get_geometry">
+ <arg name="surface" type="object" interface="wl_surface"/>
+ </request>
+ <event name="geometry">
+ <arg name="surface" type="object" interface="wl_surface"/>
+ <arg name="width" type="uint"/>
+ <arg name="height" type="uint"/>
+ <arg name="x" type="int"/>
+ <arg name="y" type="int"/>
+ </event>
</interface>
</protocol>
diff --git a/tests/weston-test-client-helper.c b/tests/weston-test-client-helper.c
index b1dbd04..4510241 100644
--- a/tests/weston-test-client-helper.c
+++ b/tests/weston-test-client-helper.c
@@ -468,9 +468,27 @@ test_handle_n_egl_buffers(void *data, struct wl_test *wl_test, uint32_t n)
test->n_egl_buffers = n;
}
+static void
+test_handle_geometry(void *data, struct wl_test *wl_test,
+ struct wl_surface *surface,
+ uint32_t width, uint32_t height,
+ int32_t x, int32_t y)
+{
+ struct test *test = data;
+
+ test->geometry.width = width;
+ test->geometry.height = height;
+ test->geometry.x = x;
+ test->geometry.y = y;
+
+ fprintf(stderr, "test-client: got geometry w: %u, h: %u, x: %d y: %d\n",
+ width, height, x, y);
+}
+
static const struct wl_test_listener test_listener = {
test_handle_pointer_position,
test_handle_n_egl_buffers,
+ test_handle_geometry,
};
static void
diff --git a/tests/weston-test-client-helper.h b/tests/weston-test-client-helper.h
index 231cb61..add607f 100644
--- a/tests/weston-test-client-helper.h
+++ b/tests/weston-test-client-helper.h
@@ -57,6 +57,12 @@ struct test {
int pointer_x;
int pointer_y;
uint32_t n_egl_buffers;
+ struct {
+ uint32_t width;
+ uint32_t height;
+ int32_t x;
+ int32_t y;
+ } geometry;
};
struct input {
diff --git a/tests/weston-test.c b/tests/weston-test.c
index 75a0884..44875a6 100644
--- a/tests/weston-test.c
+++ b/tests/weston-test.c
@@ -221,6 +221,28 @@ get_n_buffers(struct wl_client *client, struct wl_resource *resource)
wl_test_send_n_egl_buffers(resource, n_buffers);
}
+static void
+get_geometry(struct wl_client *client, struct wl_resource *resource,
+ struct wl_resource *surface_resource)
+{
+ struct weston_view *view;
+ struct weston_surface *surface =
+ wl_resource_get_user_data (surface_resource);
+
+ if (surface->configure)
+ view = wl_container_of(surface->views.next, view, surface_link);
+ else
+ view = surface->configure_private;
+
+ /* not created yet */
+ if (!view)
+ return;
+
+ wl_test_send_geometry(resource, surface_resource,
+ surface->width, surface->height,
+ view->geometry.x, view->geometry.y);
+}
+
static const struct wl_test_interface test_implementation = {
move_surface,
move_pointer,
@@ -228,6 +250,7 @@ static const struct wl_test_interface test_implementation = {
activate_surface,
send_key,
get_n_buffers,
+ get_geometry
};
static void
--
2.0.1
More information about the wayland-devel
mailing list