[mutter/wip/tablet-protocol-v3: 16/18] wayland: Add methods to update the position of different tools' cursors
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/tablet-protocol-v3: 16/18] wayland: Add methods to update the position of different tools' cursors
- Date: Mon, 16 Nov 2015 12:58:05 +0000 (UTC)
commit 85b05ea2961c1394a6bdaa5ed7f47847ca5c36cd
Author: Carlos Garnacho <carlosg gnome org>
Date: Wed Oct 28 13:49:19 2015 +0100
wayland: Add methods to update the position of different tools' cursors
src/wayland/meta-wayland-tablet-manager.c | 28 ++++++++++++++++++++++++++++
src/wayland/meta-wayland-tablet-manager.h | 3 +++
src/wayland/meta-wayland-tablet-tool.c | 9 +++++++++
src/wayland/meta-wayland-tablet-tool.h | 5 +++++
4 files changed, 45 insertions(+), 0 deletions(-)
---
diff --git a/src/wayland/meta-wayland-tablet-manager.c b/src/wayland/meta-wayland-tablet-manager.c
index 7b9e68d..1b91024 100644
--- a/src/wayland/meta-wayland-tablet-manager.c
+++ b/src/wayland/meta-wayland-tablet-manager.c
@@ -33,6 +33,7 @@
#include "meta-wayland-private.h"
#include "meta-wayland-tablet-manager.h"
#include "meta-wayland-tablet-seat.h"
+#include "meta-wayland-tablet-tool.h"
static void
unbind_resource (struct wl_resource *resource)
@@ -227,3 +228,30 @@ meta_wayland_tablet_manager_handle_event (MetaWaylandTabletManager *manager,
return CLUTTER_EVENT_PROPAGATE;
}
}
+
+void
+meta_wayland_tablet_manager_update_cursor_position (MetaWaylandTabletManager *manager,
+ const ClutterEvent *event)
+{
+ MetaWaylandTabletSeat *tablet_seat = NULL;
+ MetaWaylandTabletTool *tool = NULL;
+ ClutterInputDeviceTool *device_tool;
+ ClutterInputDevice *device;
+
+ device = clutter_event_get_source_device (event);
+ device_tool = clutter_event_get_device_tool (event);
+
+ if (device)
+ tablet_seat = meta_wayland_tablet_manager_lookup_seat (manager, device);
+
+ if (tablet_seat && device_tool)
+ tool = meta_wayland_tablet_seat_lookup_tool (tablet_seat, device_tool);
+
+ if (tool)
+ {
+ gfloat new_x, new_y;
+
+ clutter_event_get_coords (event, &new_x, &new_y);
+ meta_wayland_tablet_tool_set_cursor_position (tool, new_x, new_y);
+ }
+}
diff --git a/src/wayland/meta-wayland-tablet-manager.h b/src/wayland/meta-wayland-tablet-manager.h
index f63c3b7..9972201 100644
--- a/src/wayland/meta-wayland-tablet-manager.h
+++ b/src/wayland/meta-wayland-tablet-manager.h
@@ -47,4 +47,7 @@ void meta_wayland_tablet_manager_update (MetaWaylandTabletManager *m
gboolean meta_wayland_tablet_manager_handle_event (MetaWaylandTabletManager *manager,
const ClutterEvent *event);
+void meta_wayland_tablet_manager_update_cursor_position (MetaWaylandTabletManager *manager,
+ const ClutterEvent *event);
+
#endif /* META_WAYLAND_TABLET_MANAGER_H */
diff --git a/src/wayland/meta-wayland-tablet-tool.c b/src/wayland/meta-wayland-tablet-tool.c
index 76db06f..860d605 100644
--- a/src/wayland/meta-wayland-tablet-tool.c
+++ b/src/wayland/meta-wayland-tablet-tool.c
@@ -771,3 +771,12 @@ meta_wayland_tablet_tool_handle_event (MetaWaylandTabletTool *tool,
return CLUTTER_EVENT_STOP;
}
+
+void
+meta_wayland_tablet_tool_set_cursor_position (MetaWaylandTabletTool *tool,
+ int new_x,
+ int new_y)
+{
+ if (tool->cursor_renderer)
+ meta_cursor_renderer_set_position (tool->cursor_renderer, new_x, new_y);
+}
diff --git a/src/wayland/meta-wayland-tablet-tool.h b/src/wayland/meta-wayland-tablet-tool.h
index da680e4..89ca2a6 100644
--- a/src/wayland/meta-wayland-tablet-tool.h
+++ b/src/wayland/meta-wayland-tablet-tool.h
@@ -73,4 +73,9 @@ void meta_wayland_tablet_tool_update (MetaWaylandTabletTool *t
gboolean meta_wayland_tablet_tool_handle_event (MetaWaylandTabletTool *tool,
const ClutterEvent *event);
+void meta_wayland_tablet_tool_set_cursor_position (MetaWaylandTabletTool *tool,
+ int new_x,
+ int new_y);
+
+
#endif /* META_WAYLAND_TABLET_TOOL_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]