Eina_Bool is_slider;
Eina_Bool is_screen_reader_support;
int highlighted_object_x, highlighted_object_y;
+Eina_Bool is_selection_mode;
EAPI E_Module_Api e_modapi =
{
static Eldbus_Message *_is_slider(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
static Eldbus_Message *_highlighted_object_info(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
static Eldbus_Message *_is_screen_reader_support(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
+static Eldbus_Message *_is_selection_mode(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg);
static const Eldbus_Method methods[] = {
{ "ScreenReaderEnabled", ELDBUS_ARGS({"b", "bool"}), ELDBUS_ARGS({"b", "bool"}),
{ "IsScreenReaderSupport", ELDBUS_ARGS({"b", "bool"}), NULL,
_is_screen_reader_support
},
+ { "IsSelectionMode", ELDBUS_ARGS({"b", "bool"}), NULL,
+ _is_selection_mode
+ },
{ }
};
return NULL;
}
+static Eldbus_Message *
+_is_selection_mode(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
+{
+ if (!eldbus_message_arguments_get(msg, "b", &is_selection_mode))
+ ERROR("eldbus_message_arguments_get() error\n");
+
+ return NULL;
+}
+
static int
_fetch_a11y_bus_address(void)
{
cov->flick_gesture.x_end[i] = ev->root.x;
cov->flick_gesture.y_end[i] = ev->root.y;
-
if (!cov->flick_gesture.n_fingers_left)
{
_flick_event_emit(cov);
break;
}
if (i == 1 && cov->n_taps == 2) {
- if ((cov->flick_gesture.flick_to_scroll || _flick_to_scroll_gesture_conditions_met(ev, cov->flick_gesture.timestamp[i], dx, dy)) && scrolling) {
+ if (!is_selection_mode && scrolling &&
+ (cov->flick_gesture.flick_to_scroll ||
+ _flick_to_scroll_gesture_conditions_met(ev, cov->flick_gesture.timestamp[i], dx, dy))) {
if (!cov->flick_gesture.flick_to_scroll) {
start_scroll(cov);
cov->flick_gesture.flick_to_scroll = EINA_TRUE;
}
/* start_scroll is necessary for mouse down event */
- if (!cov->flick_gesture.flick_to_scroll) {
+ if (!is_selection_mode && !cov->flick_gesture.flick_to_scroll) {
start_scroll(cov);
cov->flick_gesture.flick_to_scroll = EINA_TRUE;
}
int dy = ev->root.y - cov->tap_gesture_data.y_org[i];
if ((dx * dx + dy * dy) > _e_mod_config->one_finger_tap_radius * _e_mod_config->one_finger_tap_radius)
{
- ERROR("Abort gesture");
+ ERROR("Abort tap gesture");
if (cov->n_taps == 2) scrolling = EINA_TRUE;
cov->tap_gesture_data.started = EINA_FALSE;
ecore_timer_del(cov->tap_gesture_data.timer);
Ecore_Event_Mouse_Move *ev = event;
/* flick_to_scroll: 2 fingers touch and move
drag_start: 1 finger tap and hold move */
- if (ev->multi.radius >= MAGIC_NUMBER || cover->flick_gesture.flick_to_scroll || cover->tap_n_hold_gesture_data.drag_start)
+ if (ev->multi.radius >= MAGIC_NUMBER ||
+ cover->tap_n_hold_gesture_data.drag_start ||
+ (cover->flick_gesture.flick_to_scroll && !is_selection_mode))
{
if (ev->multi.radius >= MAGIC_NUMBER) ev->multi.radius -= MAGIC_NUMBER;
if (cover->flick_gesture.flick_to_scroll) _hover_gesture_mouse_move(ev, cover);