if (e_comp_wl->drag)
e_drag_move(e_comp_wl->drag, ev->x, ev->y);
- e_client_geometry_get(ec, &ec_x, &ec_y, NULL, NULL);
- x = ev->x - ec_x;
- y = ev->y - ec_y;
-
if (e_client_transform_core_enable_get(ec))
{
int trans_x, trans_y;
- e_client_transform_core_input_transform(ec, x, y, &trans_x, &trans_y);
- x = trans_x;
- y = trans_y;
+ e_client_transform_core_input_transform(ec, ev->x, ev->y, &trans_x, &trans_y);
+ x = trans_x - ec->client.x;
+ y = trans_y - ec->client.y;
+ }
+ else
+ {
+ e_client_geometry_get(ec, &ec_x, &ec_y, NULL, NULL);
+ x = ev->x - ec_x;
+ y = ev->y - ec_y;
}
wl_data_device_send_motion(res, ev->timestamp, wl_fixed_from_int(x), wl_fixed_from_int(y));
e_comp_wl->selection.target = ec;
evas_object_event_callback_add(ec->frame, EVAS_CALLBACK_DEL, _e_comp_wl_data_device_target_del, ec);
- x = wl_fixed_to_int(e_comp_wl->ptr.x) - e_comp_wl->selection.target->client.x;
- y = wl_fixed_to_int(e_comp_wl->ptr.y) - e_comp_wl->selection.target->client.y;
+ if (e_client_transform_core_enable_get(ec))
+ {
+ int trans_x, trans_y;
+ e_client_transform_core_input_transform(ec, wl_fixed_to_int(e_comp_wl->ptr.x), wl_fixed_to_int(e_comp_wl->ptr.y), &trans_x, &trans_y);
+ x = trans_x - ec->client.x;
+ y = trans_y - ec->client.y;
+ }
+ else
+ {
+ int ec_x, ec_y;
+ e_client_geometry_get(ec, &ec_x, &ec_y, NULL, NULL);
+ x = wl_fixed_to_int(e_comp_wl->ptr.x) - ec_x;
+ y = wl_fixed_to_int(e_comp_wl->ptr.y) - ec_y;
+ }
+
serial = wl_display_next_serial(e_comp_wl->wl.disp);
wl_data_device_send_enter(data_device_res, serial, surface,
wl_fixed_from_int(x), wl_fixed_from_int(y), offer_res);