[PATCH 1/2] Track server changes.
Scott Moreau
oreaus at gmail.com
Sat Feb 18 03:25:38 PST 2012
---
src/compositor.c | 20 ++++++++--------
src/shell.c | 62 ++++++++++++++++++++++++++++-------------------------
2 files changed, 43 insertions(+), 39 deletions(-)
diff --git a/src/compositor.c b/src/compositor.c
index a505f88..67de7bb 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -533,7 +533,7 @@ static void
weston_device_repick(struct wl_input_device *device, uint32_t time)
{
struct weston_input_device *wd = (struct weston_input_device *) device;
- const struct wl_grab_interface *interface;
+ const struct wl_pointer_grab_interface *interface;
struct weston_surface *surface, *focus;
surface = weston_compositor_pick_surface(wd->compositor,
@@ -542,16 +542,16 @@ weston_device_repick(struct wl_input_device *device, uint32_t time)
&device->current_y);
if (&surface->surface != device->current) {
- interface = device->grab->interface;
- interface->focus(device->grab, time, &surface->surface,
+ interface = device->pointer_grab->interface;
+ interface->focus(device->pointer_grab, time, &surface->surface,
device->current_x, device->current_y);
device->current = &surface->surface;
}
- focus = (struct weston_surface *) device->grab->focus;
+ focus = (struct weston_surface *) device->pointer_grab->focus;
if (focus)
weston_surface_from_global(focus, device->x, device->y,
- &device->grab->x, &device->grab->y);
+ &device->pointer_grab->x, &device->pointer_grab->y);
}
WL_EXPORT void
@@ -1299,7 +1299,7 @@ WL_EXPORT void
notify_motion(struct wl_input_device *device, uint32_t time, int x, int y)
{
struct weston_output *output;
- const struct wl_grab_interface *interface;
+ const struct wl_pointer_grab_interface *interface;
struct weston_input_device *wd = (struct weston_input_device *) device;
struct weston_compositor *ec = wd->compositor;
int x_valid = 0, y_valid = 0;
@@ -1346,9 +1346,9 @@ notify_motion(struct wl_input_device *device, uint32_t time, int x, int y)
device->y = y;
weston_device_repick(device, time);
- interface = device->grab->interface;
- interface->motion(device->grab, time,
- device->grab->x, device->grab->y);
+ interface = device->pointer_grab->interface;
+ interface->motion(device->pointer_grab, time,
+ device->pointer_grab->x, device->pointer_grab->y);
if (wd->sprite) {
weston_surface_set_position(wd->sprite,
@@ -1392,7 +1392,7 @@ notify_button(struct wl_input_device *device,
weston_compositor_run_binding(compositor, wd, time, 0, button, state);
- device->grab->interface->button(device->grab, time, button, state);
+ device->pointer_grab->interface->button(device->pointer_grab, time, button, state);
}
diff --git a/src/shell.c b/src/shell.c
index e4d4768..db69dc6 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -101,7 +101,7 @@ struct shell_surface {
} rotation;
struct {
- struct wl_grab grab;
+ struct wl_pointer_grab grab;
uint32_t time;
int32_t x, y;
struct weston_transform parent_transform;
@@ -113,13 +113,17 @@ struct shell_surface {
};
struct weston_move_grab {
- struct wl_grab grab;
+ struct wl_pointer_grab grab;
struct weston_surface *surface;
int32_t dx, dy;
};
+struct weston_zoom_grab {
+ struct wl_keyboard_grab grab;
+};
+
struct rotate_grab {
- struct wl_grab grab;
+ struct wl_pointer_grab grab;
struct shell_surface *surface;
struct weston_matrix rotation;
struct {
@@ -153,14 +157,14 @@ shell_configuration(struct wl_shell *shell)
}
static void
-noop_grab_focus(struct wl_grab *grab, uint32_t time,
+noop_grab_focus(struct wl_pointer_grab *grab, uint32_t time,
struct wl_surface *surface, int32_t x, int32_t y)
{
grab->focus = NULL;
}
static void
-move_grab_motion(struct wl_grab *grab,
+move_grab_motion(struct wl_pointer_grab *grab,
uint32_t time, int32_t x, int32_t y)
{
struct weston_move_grab *move = (struct weston_move_grab *) grab;
@@ -174,18 +178,18 @@ move_grab_motion(struct wl_grab *grab,
}
static void
-move_grab_button(struct wl_grab *grab,
+move_grab_button(struct wl_pointer_grab *grab,
uint32_t time, int32_t button, int32_t state)
{
struct wl_input_device *device = grab->input_device;
if (device->button_count == 0 && state == 0) {
- wl_input_device_end_grab(device, time);
+ wl_input_device_end_pointer_grab(device, time);
free(grab);
}
}
-static const struct wl_grab_interface move_grab_interface = {
+static const struct wl_pointer_grab_interface move_grab_interface = {
noop_grab_focus,
move_grab_motion,
move_grab_button,
@@ -206,7 +210,7 @@ weston_surface_move(struct weston_surface *es,
move->dy = es->geometry.y - wd->input_device.grab_y;
move->surface = es;
- wl_input_device_start_grab(&wd->input_device, &move->grab, time);
+ wl_input_device_start_pointer_grab(&wd->input_device, &move->grab, time);
wl_input_device_set_pointer_focus(&wd->input_device, NULL, time, 0, 0);
@@ -230,14 +234,14 @@ shell_surface_move(struct wl_client *client, struct wl_resource *resource,
}
struct weston_resize_grab {
- struct wl_grab grab;
+ struct wl_pointer_grab grab;
uint32_t edges;
int32_t width, height;
struct shell_surface *shsurf;
};
static void
-resize_grab_motion(struct wl_grab *grab,
+resize_grab_motion(struct wl_pointer_grab *grab,
uint32_t time, int32_t x, int32_t y)
{
struct weston_resize_grab *resize = (struct weston_resize_grab *) grab;
@@ -274,18 +278,18 @@ resize_grab_motion(struct wl_grab *grab,
}
static void
-resize_grab_button(struct wl_grab *grab,
+resize_grab_button(struct wl_pointer_grab *grab,
uint32_t time, int32_t button, int32_t state)
{
struct wl_input_device *device = grab->input_device;
if (device->button_count == 0 && state == 0) {
- wl_input_device_end_grab(device, time);
+ wl_input_device_end_pointer_grab(device, time);
free(grab);
}
}
-static const struct wl_grab_interface resize_grab_interface = {
+static const struct wl_pointer_grab_interface resize_grab_interface = {
noop_grab_focus,
resize_grab_motion,
resize_grab_button,
@@ -314,7 +318,7 @@ weston_surface_resize(struct shell_surface *shsurf,
resize->height = shsurf->surface->geometry.height;
resize->shsurf = shsurf;
- wl_input_device_start_grab(&wd->input_device, &resize->grab, time);
+ wl_input_device_start_pointer_grab(&wd->input_device, &resize->grab, time);
wl_input_device_set_pointer_focus(&wd->input_device, NULL, time, 0, 0);
@@ -514,7 +518,7 @@ shell_surface_set_fullscreen(struct wl_client *client,
}
static void
-popup_grab_focus(struct wl_grab *grab, uint32_t time,
+popup_grab_focus(struct wl_pointer_grab *grab, uint32_t time,
struct wl_surface *surface, int32_t x, int32_t y)
{
struct wl_input_device *device = grab->input_device;
@@ -532,8 +536,8 @@ popup_grab_focus(struct wl_grab *grab, uint32_t time,
}
static void
-popup_grab_motion(struct wl_grab *grab,
- uint32_t time, int32_t sx, int32_t sy)
+popup_grab_motion(struct wl_pointer_grab *grab,
+ uint32_t time, int32_t x, int32_t y)
{
struct wl_resource *resource;
@@ -544,7 +548,7 @@ popup_grab_motion(struct wl_grab *grab,
}
static void
-popup_grab_button(struct wl_grab *grab,
+popup_grab_button(struct wl_pointer_grab *grab,
uint32_t time, int32_t button, int32_t state)
{
struct wl_resource *resource;
@@ -560,7 +564,7 @@ popup_grab_button(struct wl_grab *grab,
time - shsurf->popup.time > 500)) {
wl_resource_post_event(&shsurf->resource,
WL_SHELL_SURFACE_POPUP_DONE);
- wl_input_device_end_grab(grab->input_device, time);
+ wl_input_device_end_pointer_grab(grab->input_device, time);
shsurf->popup.grab.input_device = NULL;
}
@@ -568,7 +572,7 @@ popup_grab_button(struct wl_grab *grab,
shsurf->popup.initial_up = 1;
}
-static const struct wl_grab_interface popup_grab_interface = {
+static const struct wl_pointer_grab_interface popup_grab_interface = {
popup_grab_focus,
popup_grab_motion,
popup_grab_button,
@@ -606,7 +610,7 @@ shell_map_popup(struct shell_surface *shsurf, uint32_t time)
shsurf->popup.time = device->grab_time;
shsurf->popup.initial_up = 0;
- wl_input_device_start_grab(shsurf->popup.grab.input_device,
+ wl_input_device_start_pointer_grab(shsurf->popup.grab.input_device,
&shsurf->popup.grab, shsurf->popup.time);
}
@@ -642,7 +646,7 @@ destroy_shell_surface(struct wl_resource *resource)
struct shell_surface *shsurf = resource->data;
if (shsurf->popup.grab.input_device)
- wl_input_device_end_grab(shsurf->popup.grab.input_device, 0);
+ wl_input_device_end_pointer_grab(shsurf->popup.grab.input_device, 0);
/* in case cleaning up a dead client destroys shell_surface first */
if (shsurf->surface)
@@ -1044,7 +1048,7 @@ terminate_binding(struct wl_input_device *device, uint32_t time,
}
static void
-rotate_grab_motion(struct wl_grab *grab,
+rotate_grab_motion(struct wl_pointer_grab *grab,
uint32_t time, int32_t x, int32_t y)
{
struct rotate_grab *rotate =
@@ -1095,7 +1099,7 @@ rotate_grab_motion(struct wl_grab *grab,
}
static void
-rotate_grab_button(struct wl_grab *grab,
+rotate_grab_button(struct wl_pointer_grab *grab,
uint32_t time, int32_t button, int32_t state)
{
struct rotate_grab *rotate =
@@ -1106,12 +1110,12 @@ rotate_grab_button(struct wl_grab *grab,
if (device->button_count == 0 && state == 0) {
weston_matrix_multiply(&surface->rotation.rotation,
&rotate->rotation);
- wl_input_device_end_grab(device, time);
+ wl_input_device_end_pointer_grab(device, time);
free(rotate);
}
}
-static const struct wl_grab_interface rotate_grab_interface = {
+static const struct wl_pointer_grab_interface rotate_grab_interface = {
noop_grab_focus,
rotate_grab_motion,
rotate_grab_button,
@@ -1157,7 +1161,7 @@ rotate_binding(struct wl_input_device *device, uint32_t time,
surface->surface->geometry.height / 2,
&rotate->center.x, &rotate->center.y);
- wl_input_device_start_grab(device, &rotate->grab, time);
+ wl_input_device_start_pointer_grab(device, &rotate->grab, time);
dx = device->x - rotate->center.x;
dy = device->y - rotate->center.y;
@@ -1233,7 +1237,7 @@ click_to_activate_binding(struct wl_input_device *device,
struct weston_surface *focus;
focus = (struct weston_surface *) device->pointer_focus;
- if (state && focus && device->grab == &device->default_grab)
+ if (state && focus && device->pointer_grab == &device->default_pointer_grab)
activate(compositor->shell, focus, wd, time);
}
--
1.7.4.1
More information about the wayland-devel
mailing list