commit 7e04c8a
Michael Forney
·
2013-06-21 08:50:11 +0000 UTC
parent 2859b0b
pointer: Fix pointer.set_cursor
1 files changed,
+11,
-2
+11,
-2
1@@ -100,17 +100,26 @@ static void set_cursor(struct wl_client * client,
2 int32_t hotspot_x, int32_t hotspot_y)
3 {
4 struct swc_pointer * pointer = wl_resource_get_user_data(resource);
5- struct swc_surface * surface = wl_resource_get_user_data(surface_resource);
6+ struct swc_surface * surface;
7 struct swc_event event;
8
9 printf("set_cursor\n");
10
11+ surface = surface_resource ? wl_resource_get_user_data(surface_resource)
12+ : NULL;
13+
14+ if (surface)
15+ {
16+ surface->geometry.x = wl_fixed_to_int(pointer->x) - hotspot_x;
17+ surface->geometry.y = wl_fixed_to_int(pointer->y) - hotspot_y;
18+ }
19+
20 pointer->cursor.surface = surface;
21 pointer->cursor.hotspot_x = hotspot_x;
22 pointer->cursor.hotspot_y = hotspot_y;
23
24 event.type = SWC_POINTER_CURSOR_CHANGED;
25- event.data = surface;
26+ event.data = pointer;
27
28 wl_signal_emit(&pointer->event_signal, &event);
29 }