aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTony Crisci <tony@dubstepdish.com>2017-09-21 11:38:04 -0400
committerTony Crisci <tony@dubstepdish.com>2017-09-21 11:38:04 -0400
commit7a3edf6e6218b79e47541a0d5ebed64e094055b4 (patch)
tree9ce5db22bbb43e2c778b3e6dcc2b418bf26dbd0b
parent8b74450b398dbe9afa38fdad5e5b9335a2ac1d0b (diff)
use double for cursor coordinates
-rw-r--r--examples/compositor.c4
-rw-r--r--include/wlr/types/wlr_cursor.h2
-rw-r--r--include/wlr/types/wlr_seat.h4
-rw-r--r--types/wlr_seat.c8
4 files changed, 9 insertions, 9 deletions
diff --git a/examples/compositor.c b/examples/compositor.c
index 7595c729..24013c52 100644
--- a/examples/compositor.c
+++ b/examples/compositor.c
@@ -366,8 +366,8 @@ static void handle_cursor_motion(struct wl_listener *listener, void *data) {
if (surface) {
struct example_xdg_surface_v6 *esurface = surface->data;
- int32_t sx = sample->cursor->x - esurface->position.lx;
- int32_t sy = sample->cursor->y - esurface->position.ly;
+ double sx = sample->cursor->x - esurface->position.lx;
+ double sy = sample->cursor->y - esurface->position.ly;
// TODO z-order
wlr_seat_pointer_enter(sample->wl_seat, surface->surface,
diff --git a/include/wlr/types/wlr_cursor.h b/include/wlr/types/wlr_cursor.h
index 5fc0ec76..88390e0d 100644
--- a/include/wlr/types/wlr_cursor.h
+++ b/include/wlr/types/wlr_cursor.h
@@ -11,7 +11,7 @@ struct wlr_cursor_state;
struct wlr_cursor {
struct wlr_cursor_state *state;
- int x, y;
+ double x, y;
struct {
struct wl_signal motion;
diff --git a/include/wlr/types/wlr_seat.h b/include/wlr/types/wlr_seat.h
index 2993d693..221e4489 100644
--- a/include/wlr/types/wlr_seat.h
+++ b/include/wlr/types/wlr_seat.h
@@ -88,7 +88,7 @@ bool wlr_seat_pointer_surface_has_focus(struct wlr_seat *wlr_seat,
* surface that was entered. Coordinates for the enter event are surface-local.
*/
void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
- struct wlr_surface *surface, int32_t sx, int32_t sy);
+ struct wlr_surface *surface, double sx, double sy);
/**
* Clear the focused surface for the pointer and leave all entered surfaces.
@@ -100,7 +100,7 @@ void wlr_seat_pointer_clear_focus(struct wlr_seat *wlr_seat);
* motion event are surface-local.
*/
void wlr_seat_pointer_send_motion(struct wlr_seat *wlr_seat, uint32_t time,
- int32_t sx, int32_t sy);
+ double sx, double sy);
/**
* Send a button event to the surface with pointer focus. Coordinates for the
diff --git a/types/wlr_seat.c b/types/wlr_seat.c
index 2a0a1dcd..411c1182 100644
--- a/types/wlr_seat.c
+++ b/types/wlr_seat.c
@@ -261,7 +261,7 @@ static void handle_pointer_focus_resource_destroyed(
}
void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
- struct wlr_surface *surface, int32_t sx, int32_t sy) {
+ struct wlr_surface *surface, double sx, double sy) {
assert(wlr_seat);
if (wlr_seat->pointer_state.focused_surface == surface) {
@@ -293,7 +293,7 @@ void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
if (handle) {
uint32_t serial = wl_display_next_serial(wlr_seat->display);
wl_pointer_send_enter(handle->pointer, serial, surface->resource,
- wl_fixed_from_int(sx), wl_fixed_from_int(sy));
+ wl_fixed_from_double(sx), wl_fixed_from_double(sy));
wl_pointer_send_frame(handle->pointer);
}
@@ -326,14 +326,14 @@ void wlr_seat_pointer_clear_focus(struct wlr_seat *wlr_seat) {
}
void wlr_seat_pointer_send_motion(struct wlr_seat *wlr_seat, uint32_t time,
- int32_t sx, int32_t sy) {
+ double sx, double sy) {
if (!wlr_seat->pointer_state.focused_handle) {
// nobody to send the event to
return;
}
wl_pointer_send_motion(wlr_seat->pointer_state.focused_handle->pointer,
- time, wl_fixed_from_int(sx), wl_fixed_from_int(sy));
+ time, wl_fixed_from_double(sx), wl_fixed_from_double(sy));
wl_pointer_send_frame(wlr_seat->pointer_state.focused_handle->pointer);
}