summaryrefslogtreecommitdiff
path: root/src/lib/elementary/efl_ui_active_view_view_manager_scroll.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/efl_ui_active_view_view_manager_scroll.c')
-rw-r--r--src/lib/elementary/efl_ui_active_view_view_manager_scroll.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lib/elementary/efl_ui_active_view_view_manager_scroll.c b/src/lib/elementary/efl_ui_active_view_view_manager_scroll.c
index 6918703cf1..30df266c89 100644
--- a/src/lib/elementary/efl_ui_active_view_view_manager_scroll.c
+++ b/src/lib/elementary/efl_ui_active_view_view_manager_scroll.c
@@ -20,6 +20,7 @@ typedef struct {
Eina_Bool active;
int from;
Eina_Position2D mouse_start;
+ Eina_Bool moved;
} mouse_move;
Eina_Bool animation;
} Efl_Ui_Active_View_View_Manager_Scroll_Data;
@@ -105,6 +106,7 @@ _mouse_down_cb(void *data,
pd->mouse_move.active = EINA_TRUE;
pd->mouse_move.from = efl_ui_active_view_active_index_get(pd->container);
pd->mouse_move.mouse_start = efl_input_pointer_position_get(ev);
+ pd->mouse_move.moved = EINA_FALSE;
}
static void
@@ -123,6 +125,8 @@ _mouse_move_cb(void *data,
pos = efl_input_pointer_position_get(ev);
pos_y_diff = pd->mouse_move.mouse_start.x - pos.x;
+ pd->mouse_move.moved = EINA_TRUE;
+
pd->transition.active = EINA_TRUE;
pd->transition.from = pd->mouse_move.from;
pd->transition.progress = (double)pos_y_diff / (double)pd->page_size.w;
@@ -144,6 +148,12 @@ _mouse_up_cb(void *data,
if (efl_input_event_flags_get(ev) & EFL_INPUT_FLAGS_PROCESSED) return;
if (!pd->mouse_move.active) return;
+ //Set input processed not to cause clicked event to content button.
+ if (pd->mouse_move.moved && !efl_input_processed_get(ev))
+ efl_input_processed_set(ev, EINA_TRUE);
+
+ pd->mouse_move.moved = EINA_FALSE;
+
double absolut_current_position = (double)pd->transition.from + pd->transition.progress;
int result = round(absolut_current_position);