summaryrefslogtreecommitdiff
path: root/screen_connector_watcher_evas
diff options
context:
space:
mode:
authorHyunho Kang <hhstark.kang@samsung.com>2017-05-12 09:57:35 +0900
committerHyunho Kang <hhstark.kang@samsung.com>2017-05-12 09:58:19 +0900
commit18498e0b1b8785ccbfbec95a1958aed1511f8306 (patch)
treec8e673630c56347cb3d1052da2141be83123c62f /screen_connector_watcher_evas
parentacf380a217578c085f28fa13b10f8cba00f5ae53 (diff)
downloadscreen-connector-18498e0b1b8785ccbfbec95a1958aed1511f8306.tar.gz
screen-connector-18498e0b1b8785ccbfbec95a1958aed1511f8306.tar.bz2
screen-connector-18498e0b1b8785ccbfbec95a1958aed1511f8306.zip
Add mouse in/out handling logic
Change-Id: I4b87825c3bfb29851b1a12430c26da22245b2159 Signed-off-by: Hyunho Kang <hhstark.kang@samsung.com>
Diffstat (limited to 'screen_connector_watcher_evas')
-rw-r--r--screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c80
1 files changed, 80 insertions, 0 deletions
diff --git a/screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c b/screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c
index d53e0ed..b4bf4fe 100644
--- a/screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c
+++ b/screen_connector_watcher_evas/src/screen_connector_toolkit_evas.c
@@ -468,6 +468,80 @@ static void __rs_cb_mouse_wheel(void *data, Evas *e, Evas_Object *obj, void *eve
ev->timestamp);
}
+static void __rs_cb_mouse_in(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ screen_connector_toolkit_evas_h toolkit_evas_h = (screen_connector_toolkit_evas_h)data;
+ Evas_Event_Mouse_In *ev = event_info;
+ const char *desc = evas_device_description_get(ev->dev);
+ int x;
+ int y;
+ int w;
+ int h;
+ struct tizen_remote_surface *surface;
+
+ evas_object_geometry_get(obj, &x, &y, &w, &h);
+ LOGD("mouse in: %d %d", ev->canvas.x - x, ev->canvas.y - y);
+
+ if (desc == NULL)
+ desc = "";
+
+ surface = screen_connector_toolkit_get_trs(toolkit_evas_h->toolkit_h);
+ if (surface == NULL) {
+ LOGE("surface is NULL");
+ return;
+ }
+
+ tizen_remote_surface_transfer_mouse_event(
+ surface,
+ TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_IN,
+ 0,
+ 0,
+ ev->canvas.x - x,
+ ev->canvas.y - y,
+ 0,
+ 0,
+ 0,
+ 0,
+ evas_device_class_get(ev->dev),
+ evas_device_subclass_get(ev->dev),
+ desc,
+ ev->timestamp);
+}
+
+static void __rs_cb_mouse_out(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ screen_connector_toolkit_evas_h toolkit_evas_h = (screen_connector_toolkit_evas_h)data;
+ Evas_Event_Mouse_Out *ev = event_info;
+ const char *desc = evas_device_description_get(ev->dev);
+ struct tizen_remote_surface *surface;
+
+ LOGD("mouse out");
+ if (desc == NULL)
+ desc = "";
+
+ surface = screen_connector_toolkit_get_trs(toolkit_evas_h->toolkit_h);
+ if (surface == NULL) {
+ LOGE("surface is NULL");
+ return;
+ }
+
+ tizen_remote_surface_transfer_mouse_event(
+ surface,
+ TIZEN_REMOTE_SURFACE_EVENT_TYPE_MOUSE_OUT,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ evas_device_class_get(ev->dev),
+ evas_device_subclass_get(ev->dev),
+ desc,
+ ev->timestamp);
+}
+
static void __rs_cb_show(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
LOGD("show");
@@ -521,6 +595,12 @@ static void __toolkit_update_cb(struct tizen_remote_surface *trs, uint32_t type,
EVAS_CALLBACK_MOUSE_WHEEL,
__rs_cb_mouse_wheel, toolkit_evas_h);
evas_object_event_callback_add(toolkit_evas_h->img_tbm,
+ EVAS_CALLBACK_MOUSE_IN,
+ __rs_cb_mouse_in, toolkit_evas_h);
+ evas_object_event_callback_add(toolkit_evas_h->img_tbm,
+ EVAS_CALLBACK_MOUSE_OUT,
+ __rs_cb_mouse_out, toolkit_evas_h);
+ evas_object_event_callback_add(toolkit_evas_h->img_tbm,
EVAS_CALLBACK_SHOW,
__rs_cb_show, toolkit_evas_h);
evas_object_event_callback_add(toolkit_evas_h->img_tbm,