Track server changes.

dev
Scott Moreau 13 years ago committed by Kristian Høgsberg
parent 1cbf3262dd
commit 447013d718
  1. 20
      src/compositor.c
  2. 56
      src/shell.c

@ -532,7 +532,7 @@ static void
weston_device_repick(struct wl_input_device *device, uint32_t time) weston_device_repick(struct wl_input_device *device, uint32_t time)
{ {
struct weston_input_device *wd = (struct weston_input_device *) device; 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; struct weston_surface *surface, *focus;
surface = weston_compositor_pick_surface(wd->compositor, surface = weston_compositor_pick_surface(wd->compositor,
@ -541,16 +541,16 @@ weston_device_repick(struct wl_input_device *device, uint32_t time)
&device->current_y); &device->current_y);
if (&surface->surface != device->current) { if (&surface->surface != device->current) {
interface = device->grab->interface; interface = device->pointer_grab->interface;
interface->focus(device->grab, time, &surface->surface, interface->focus(device->pointer_grab, time, &surface->surface,
device->current_x, device->current_y); device->current_x, device->current_y);
device->current = &surface->surface; device->current = &surface->surface;
} }
focus = (struct weston_surface *) device->grab->focus; focus = (struct weston_surface *) device->pointer_grab->focus;
if (focus) if (focus)
weston_surface_from_global(focus, device->x, device->y, 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 WL_EXPORT void
@ -1298,7 +1298,7 @@ WL_EXPORT void
notify_motion(struct wl_input_device *device, uint32_t time, int x, int y) notify_motion(struct wl_input_device *device, uint32_t time, int x, int y)
{ {
struct weston_output *output; 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_input_device *wd = (struct weston_input_device *) device;
struct weston_compositor *ec = wd->compositor; struct weston_compositor *ec = wd->compositor;
int x_valid = 0, y_valid = 0; int x_valid = 0, y_valid = 0;
@ -1345,9 +1345,9 @@ notify_motion(struct wl_input_device *device, uint32_t time, int x, int y)
device->y = y; device->y = y;
weston_device_repick(device, time); weston_device_repick(device, time);
interface = device->grab->interface; interface = device->pointer_grab->interface;
interface->motion(device->grab, time, interface->motion(device->pointer_grab, time,
device->grab->x, device->grab->y); device->pointer_grab->x, device->pointer_grab->y);
if (wd->sprite) { if (wd->sprite) {
weston_surface_set_position(wd->sprite, weston_surface_set_position(wd->sprite,
@ -1391,7 +1391,7 @@ notify_button(struct wl_input_device *device,
weston_compositor_run_binding(compositor, wd, time, 0, button, state); 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);
} }

@ -101,7 +101,7 @@ struct shell_surface {
} rotation; } rotation;
struct { struct {
struct wl_grab grab; struct wl_pointer_grab grab;
uint32_t time; uint32_t time;
int32_t x, y; int32_t x, y;
struct weston_transform parent_transform; struct weston_transform parent_transform;
@ -114,13 +114,13 @@ struct shell_surface {
}; };
struct weston_move_grab { struct weston_move_grab {
struct wl_grab grab; struct wl_pointer_grab grab;
struct weston_surface *surface; struct weston_surface *surface;
int32_t dx, dy; int32_t dx, dy;
}; };
struct rotate_grab { struct rotate_grab {
struct wl_grab grab; struct wl_pointer_grab grab;
struct shell_surface *surface; struct shell_surface *surface;
struct weston_matrix rotation; struct weston_matrix rotation;
struct { struct {
@ -154,14 +154,14 @@ shell_configuration(struct wl_shell *shell)
} }
static void 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) struct wl_surface *surface, int32_t x, int32_t y)
{ {
grab->focus = NULL; grab->focus = NULL;
} }
static void 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) uint32_t time, int32_t x, int32_t y)
{ {
struct weston_move_grab *move = (struct weston_move_grab *) grab; struct weston_move_grab *move = (struct weston_move_grab *) grab;
@ -175,18 +175,18 @@ move_grab_motion(struct wl_grab *grab,
} }
static void 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) uint32_t time, int32_t button, int32_t state)
{ {
struct wl_input_device *device = grab->input_device; struct wl_input_device *device = grab->input_device;
if (device->button_count == 0 && state == 0) { if (device->button_count == 0 && state == 0) {
wl_input_device_end_grab(device, time); wl_input_device_end_pointer_grab(device, time);
free(grab); free(grab);
} }
} }
static const struct wl_grab_interface move_grab_interface = { static const struct wl_pointer_grab_interface move_grab_interface = {
noop_grab_focus, noop_grab_focus,
move_grab_motion, move_grab_motion,
move_grab_button, move_grab_button,
@ -207,7 +207,7 @@ weston_surface_move(struct weston_surface *es,
move->dy = es->geometry.y - wd->input_device.grab_y; move->dy = es->geometry.y - wd->input_device.grab_y;
move->surface = es; 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); wl_input_device_set_pointer_focus(&wd->input_device, NULL, time, 0, 0);
@ -231,14 +231,14 @@ shell_surface_move(struct wl_client *client, struct wl_resource *resource,
} }
struct weston_resize_grab { struct weston_resize_grab {
struct wl_grab grab; struct wl_pointer_grab grab;
uint32_t edges; uint32_t edges;
int32_t width, height; int32_t width, height;
struct shell_surface *shsurf; struct shell_surface *shsurf;
}; };
static void 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) uint32_t time, int32_t x, int32_t y)
{ {
struct weston_resize_grab *resize = (struct weston_resize_grab *) grab; struct weston_resize_grab *resize = (struct weston_resize_grab *) grab;
@ -275,18 +275,18 @@ resize_grab_motion(struct wl_grab *grab,
} }
static void 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) uint32_t time, int32_t button, int32_t state)
{ {
struct wl_input_device *device = grab->input_device; struct wl_input_device *device = grab->input_device;
if (device->button_count == 0 && state == 0) { if (device->button_count == 0 && state == 0) {
wl_input_device_end_grab(device, time); wl_input_device_end_pointer_grab(device, time);
free(grab); free(grab);
} }
} }
static const struct wl_grab_interface resize_grab_interface = { static const struct wl_pointer_grab_interface resize_grab_interface = {
noop_grab_focus, noop_grab_focus,
resize_grab_motion, resize_grab_motion,
resize_grab_button, resize_grab_button,
@ -315,7 +315,7 @@ weston_surface_resize(struct shell_surface *shsurf,
resize->height = shsurf->surface->geometry.height; resize->height = shsurf->surface->geometry.height;
resize->shsurf = shsurf; 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); wl_input_device_set_pointer_focus(&wd->input_device, NULL, time, 0, 0);
@ -515,7 +515,7 @@ shell_surface_set_fullscreen(struct wl_client *client,
} }
static void 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_surface *surface, int32_t x, int32_t y)
{ {
struct wl_input_device *device = grab->input_device; struct wl_input_device *device = grab->input_device;
@ -533,7 +533,7 @@ popup_grab_focus(struct wl_grab *grab, uint32_t time,
} }
static void static void
popup_grab_motion(struct wl_grab *grab, popup_grab_motion(struct wl_pointer_grab *grab,
uint32_t time, int32_t sx, int32_t sy) uint32_t time, int32_t sx, int32_t sy)
{ {
struct wl_resource *resource; struct wl_resource *resource;
@ -545,7 +545,7 @@ popup_grab_motion(struct wl_grab *grab,
} }
static void 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) uint32_t time, int32_t button, int32_t state)
{ {
struct wl_resource *resource; struct wl_resource *resource;
@ -561,7 +561,7 @@ popup_grab_button(struct wl_grab *grab,
time - shsurf->popup.time > 500)) { time - shsurf->popup.time > 500)) {
wl_resource_post_event(&shsurf->resource, wl_resource_post_event(&shsurf->resource,
WL_SHELL_SURFACE_POPUP_DONE); 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; shsurf->popup.grab.input_device = NULL;
} }
@ -569,7 +569,7 @@ popup_grab_button(struct wl_grab *grab,
shsurf->popup.initial_up = 1; 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_focus,
popup_grab_motion, popup_grab_motion,
popup_grab_button, popup_grab_button,
@ -607,7 +607,7 @@ shell_map_popup(struct shell_surface *shsurf, uint32_t time)
shsurf->popup.time = device->grab_time; shsurf->popup.time = device->grab_time;
shsurf->popup.initial_up = 0; 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); &shsurf->popup.grab, shsurf->popup.time);
} }
@ -643,7 +643,7 @@ destroy_shell_surface(struct wl_resource *resource)
struct shell_surface *shsurf = resource->data; struct shell_surface *shsurf = resource->data;
if (shsurf->popup.grab.input_device) 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 */ /* in case cleaning up a dead client destroys shell_surface first */
if (shsurf->surface) if (shsurf->surface)
@ -1045,7 +1045,7 @@ terminate_binding(struct wl_input_device *device, uint32_t time,
} }
static void 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) uint32_t time, int32_t x, int32_t y)
{ {
struct rotate_grab *rotate = struct rotate_grab *rotate =
@ -1096,7 +1096,7 @@ rotate_grab_motion(struct wl_grab *grab,
} }
static void 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) uint32_t time, int32_t button, int32_t state)
{ {
struct rotate_grab *rotate = struct rotate_grab *rotate =
@ -1107,12 +1107,12 @@ rotate_grab_button(struct wl_grab *grab,
if (device->button_count == 0 && state == 0) { if (device->button_count == 0 && state == 0) {
weston_matrix_multiply(&surface->rotation.rotation, weston_matrix_multiply(&surface->rotation.rotation,
&rotate->rotation); &rotate->rotation);
wl_input_device_end_grab(device, time); wl_input_device_end_pointer_grab(device, time);
free(rotate); free(rotate);
} }
} }
static const struct wl_grab_interface rotate_grab_interface = { static const struct wl_pointer_grab_interface rotate_grab_interface = {
noop_grab_focus, noop_grab_focus,
rotate_grab_motion, rotate_grab_motion,
rotate_grab_button, rotate_grab_button,
@ -1158,7 +1158,7 @@ rotate_binding(struct wl_input_device *device, uint32_t time,
surface->surface->geometry.height / 2, surface->surface->geometry.height / 2,
&rotate->center.x, &rotate->center.y); &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; dx = device->x - rotate->center.x;
dy = device->y - rotate->center.y; dy = device->y - rotate->center.y;
@ -1234,7 +1234,7 @@ click_to_activate_binding(struct wl_input_device *device,
struct weston_surface *focus; struct weston_surface *focus;
focus = (struct weston_surface *) device->pointer_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); activate(compositor->shell, focus, wd, time);
} }

Loading…
Cancel
Save