mirror of
				https://gitlab.freedesktop.org/wlroots/wlroots.git
				synced 2025-11-03 09:01:40 -05:00 
			
		
		
		
	use double for cursor coordinates
This commit is contained in:
		
							parent
							
								
									8b74450b39
								
							
						
					
					
						commit
						7a3edf6e62
					
				
					 4 changed files with 9 additions and 9 deletions
				
			
		| 
						 | 
					@ -366,8 +366,8 @@ static void handle_cursor_motion(struct wl_listener *listener, void *data) {
 | 
				
			||||||
	if (surface) {
 | 
						if (surface) {
 | 
				
			||||||
		struct example_xdg_surface_v6 *esurface = surface->data;
 | 
							struct example_xdg_surface_v6 *esurface = surface->data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		int32_t sx = sample->cursor->x - esurface->position.lx;
 | 
							double sx = sample->cursor->x - esurface->position.lx;
 | 
				
			||||||
		int32_t sy = sample->cursor->y - esurface->position.ly;
 | 
							double sy = sample->cursor->y - esurface->position.ly;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// TODO z-order
 | 
							// TODO z-order
 | 
				
			||||||
		wlr_seat_pointer_enter(sample->wl_seat, surface->surface,
 | 
							wlr_seat_pointer_enter(sample->wl_seat, surface->surface,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -11,7 +11,7 @@ struct wlr_cursor_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct wlr_cursor {
 | 
					struct wlr_cursor {
 | 
				
			||||||
	struct wlr_cursor_state *state;
 | 
						struct wlr_cursor_state *state;
 | 
				
			||||||
	int x, y;
 | 
						double x, y;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	struct {
 | 
						struct {
 | 
				
			||||||
		struct wl_signal motion;
 | 
							struct wl_signal motion;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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.
 | 
					 * surface that was entered. Coordinates for the enter event are surface-local.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
 | 
					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.
 | 
					 * 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.
 | 
					 * motion event are surface-local.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
void wlr_seat_pointer_send_motion(struct wlr_seat *wlr_seat, uint32_t time,
 | 
					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
 | 
					 * Send a button event to the surface with pointer focus. Coordinates for the
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -261,7 +261,7 @@ static void handle_pointer_focus_resource_destroyed(
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
 | 
					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);
 | 
						assert(wlr_seat);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (wlr_seat->pointer_state.focused_surface == surface) {
 | 
						if (wlr_seat->pointer_state.focused_surface == surface) {
 | 
				
			||||||
| 
						 | 
					@ -293,7 +293,7 @@ void wlr_seat_pointer_enter(struct wlr_seat *wlr_seat,
 | 
				
			||||||
	if (handle) {
 | 
						if (handle) {
 | 
				
			||||||
		uint32_t serial = wl_display_next_serial(wlr_seat->display);
 | 
							uint32_t serial = wl_display_next_serial(wlr_seat->display);
 | 
				
			||||||
		wl_pointer_send_enter(handle->pointer, serial, surface->resource,
 | 
							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);
 | 
							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,
 | 
					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) {
 | 
						if (!wlr_seat->pointer_state.focused_handle) {
 | 
				
			||||||
		// nobody to send the event to
 | 
							// nobody to send the event to
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	wl_pointer_send_motion(wlr_seat->pointer_state.focused_handle->pointer,
 | 
						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);
 | 
						wl_pointer_send_frame(wlr_seat->pointer_state.focused_handle->pointer);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue