evas_event_callback_add(main_info.e, EVAS_CALLBACK_CANVAS_FOCUS_IN, _window_focus_in_cb, NULL);
evas_event_callback_add(main_info.e, EVAS_CALLBACK_CANVAS_FOCUS_OUT, _window_focus_out_cb, NULL);
- /* DYNAMICBOX init */
- widget_init(main_info.win);
-
/* Key register */
key_register();
return false;
}
+ /* DYNAMICBOX init */
+ widget_init(main_info.win);
+
if (main_info.is_tts) {
/* If TTS is on, use focus & do not use the enhanced scroller. */
_D("Set tree focus as true");
static struct info {
- Eina_Bool is_scrolling;
+ Evas_Object *pressed_widget;
Eina_List *pended_event_list;
} s_info = {
- .is_scrolling = EINA_FALSE,
+ .pressed_widget = NULL,
.pended_event_list = NULL,
};
}
+static void _widget_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ s_info.pressed_widget = obj;
+}
+
+static void _widget_mouse_up_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
+{
+ s_info.pressed_widget = NULL;
+}
+
HAPI Evas_Object *widget_create(Evas_Object *parent, const char *id, const char *subid, double period)
{
evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_WIDGET_CREATED, _widget_created_cb, NULL);
evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_UPDATED, _widget_updated_cb, NULL);
evas_object_smart_callback_add(widget, WIDGET_SMART_SIGNAL_CONTROL_SCROLLER, _widget_control_scroll_cb, NULL);
+ evas_object_event_callback_add(widget, EVAS_CALLBACK_MOUSE_DOWN, _widget_mouse_down_cb, NULL);
+ evas_object_event_callback_add(widget, EVAS_CALLBACK_MOUSE_UP, _widget_mouse_up_cb, NULL);
return widget;
}
+static void _widget_scroll_cb(void *data, Evas_Object *scroller, void *event_info)
+{
+ Evas_Object *current_page = NULL;
+ page_info_s *page_info = NULL;
+ const char *widget_instance_id = NULL;
+
+ current_page = scroller_get_focused_page(scroller);
+ ret_if(!current_page);
+
+ page_info = evas_object_data_get(current_page, DATA_KEY_PAGE_INFO);
+ ret_if(!page_info);
+
+ ret_if(page_info->item != s_info.pressed_widget);
+
+ widget_viewer_evas_cancel_click_event(page_info->item);
+}
+
+
+
HAPI void widget_init(Evas_Object *win)
{
int val;
widget_viewer_evas_init(win);
widget_viewer_evas_set_option(WIDGET_VIEWER_EVAS_SCROLL_X, 1);
+
+ main_s *main_info = NULL;
+ Evas_Object *scroller = NULL;
+
+ main_info = main_get_info();
+ ret_if(!main_info);
+
+ scroller = elm_object_part_content_get(main_info->layout, "scroller");
+ ret_if(!scroller);
+
+ evas_object_smart_callback_add(scroller, "scroll,drag,start", _widget_scroll_cb, NULL);
}