37816df646
wl_input_device has been both renamed and split. wl_seat is now a virtual object representing a group of logically related input devices with related focus. It now only generates one event: to let clients know that it has new capabilities. It takes requests which hand back objects for the wl_pointer, wl_keyboard and wl_touch interfaces it exposes which all provide the old input interface, just under different names. This commit tracks these changes in weston and the clients, as well as similar renames (e.g. weston_input_device -> weston_seat). Some other changes were necessary, e.g. renaming the name for the visible mouse sprite from 'pointer' to 'cursor' so as to not conflict. For simplicity, every seat is always exposed with all three interfaces, although this will change as time goes on. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
81 lines
2.6 KiB
C
81 lines
2.6 KiB
C
/*
|
|
* Copyright © 2012 Intel Corporation
|
|
*
|
|
* Permission to use, copy, modify, distribute, and sell this software and
|
|
* its documentation for any purpose is hereby granted without fee, provided
|
|
* that the above copyright notice appear in all copies and that both that
|
|
* copyright notice and this permission notice appear in supporting
|
|
* documentation, and that the name of the copyright holders not be used in
|
|
* advertising or publicity pertaining to distribution of the software
|
|
* without specific, written prior permission. The copyright holders make
|
|
* no representations about the suitability of this software for any
|
|
* purpose. It is provided "as is" without express or implied warranty.
|
|
*
|
|
* THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
|
|
* SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
|
* FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
* SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
|
|
* RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
|
|
* CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
|
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <sys/socket.h>
|
|
#include <assert.h>
|
|
#include <unistd.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include "test-runner.h"
|
|
|
|
static void
|
|
handle_surface(struct test_client *client)
|
|
{
|
|
uint32_t id;
|
|
struct wl_resource *resource;
|
|
struct weston_surface *surface;
|
|
struct weston_layer *layer = client->data;
|
|
struct wl_seat *seat;
|
|
|
|
assert(sscanf(client->buf, "surface %u", &id) == 1);
|
|
fprintf(stderr, "got surface id %u\n", id);
|
|
resource = wl_client_get_object(client->client, id);
|
|
assert(resource);
|
|
assert(strcmp(resource->object.interface->name, "wl_surface") == 0);
|
|
|
|
surface = (struct weston_surface *) resource;
|
|
|
|
weston_surface_configure(surface, 100, 100, 200, 200);
|
|
weston_surface_assign_output(surface);
|
|
weston_surface_set_color(surface, 0.0, 0.0, 0.0, 1.0);
|
|
wl_list_insert(&layer->surface_list, &surface->layer_link);
|
|
weston_surface_damage(surface);
|
|
|
|
seat = &client->compositor->seat->seat;
|
|
client->compositor->focus = 1; /* Make it work even if pointer is
|
|
* outside X window. */
|
|
notify_motion(seat, 100,
|
|
wl_fixed_from_int(150), wl_fixed_from_int(150));
|
|
|
|
test_client_send(client, "bye\n");
|
|
}
|
|
|
|
TEST(event_test)
|
|
{
|
|
struct test_client *client;
|
|
struct weston_layer *layer;
|
|
|
|
client = test_client_launch(compositor);
|
|
client->terminate = 1;
|
|
|
|
test_client_send(client, "create-surface\n");
|
|
client->handle = handle_surface;
|
|
|
|
layer = malloc(sizeof *layer);
|
|
assert(layer);
|
|
weston_layer_init(layer, &compositor->cursor_layer.link);
|
|
client->data = layer;
|
|
}
|