[mutter/wip/tablet-protocol: 81/83] 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: 81/83] wayland: Add methods to update the position of different tools' cursors
- Date: Tue, 29 Mar 2016 16:32:29 +0000 (UTC)
commit 17e8a114e18b8ad5dae374c0ac6cf772d7d8dbf4
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 4e73ea2..ce66053 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)
@@ -237,3 +238,30 @@ meta_wayland_tablet_manager_ensure_seat (MetaWaylandTabletManager *manager,
return tablet_seat;
}
+
+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 b39d3a9..0e01039 100644
--- a/src/wayland/meta-wayland-tablet-manager.h
+++ b/src/wayland/meta-wayland-tablet-manager.h
@@ -51,4 +51,7 @@ MetaWaylandTabletSeat *
meta_wayland_tablet_manager_ensure_seat (MetaWaylandTabletManager *manager,
MetaWaylandSeat *seat);
+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 fac2924..cbb22b3 100644
--- a/src/wayland/meta-wayland-tablet-tool.c
+++ b/src/wayland/meta-wayland-tablet-tool.c
@@ -879,3 +879,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]