forked from enlightenment/efl
elm_smart_scroller now propagates the events, fixes tooltips in scrolled stuff.
The els_scroller.c:_smart_add() as disabling event propagation on itself, that way an owner object (ie: elm_scroller, elm_scrolled_entry, elm_list, ...) was not getting the mouse events it gets, thus any evas_object_event_callback_add(..., EVAS_CALLBACK_MOUSE_*...) were not working (effectively breaking tooltips). Seems that the reason to do so was double-event reporting. It could happen as the elm_smart_scroller has an event_obj that repeats event, thus the object behind it, the edje_object, could get and possibly repeat them as well. As we are sure event_obj always get the events, but not sure of the edje, as it depend on user contents, the logic is now changed to stop propagation of the edje instead (it still processes the events! just not propagates to elm_smart_scroller). I hope this patch does not break anything, but please check your software! SVN revision: 52350
This commit is contained in:
parent
5e11f54d20
commit
0a034e8fe5
|
@ -178,7 +178,7 @@ _tt_visible_lock_toggle(void *data __UNUSED__, Evas_Object *obj, void *event_inf
|
|||
void
|
||||
test_tooltip(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
|
||||
{
|
||||
Evas_Object *win, *bg, *bx, *tb, *bt, *lst;
|
||||
Evas_Object *win, *bg, *bx, *tb, *bt, *se, *lst;
|
||||
Elm_Toolbar_Item *ti;
|
||||
Elm_List_Item *li;
|
||||
|
||||
|
@ -268,6 +268,16 @@ test_tooltip(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_inf
|
|||
elm_box_pack_end(bx, bt);
|
||||
evas_object_show(bt);
|
||||
|
||||
se = elm_scrolled_entry_add(win);
|
||||
evas_object_size_hint_weight_set(se, EVAS_HINT_EXPAND, 0.0);
|
||||
evas_object_size_hint_align_set(se, EVAS_HINT_FILL, 0.5);
|
||||
elm_scrolled_entry_scrollbar_policy_set(se, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
|
||||
elm_scrolled_entry_entry_set(se, "Hello, some scrolled entry here!");
|
||||
elm_object_tooltip_text_set(se, "Type something here!");
|
||||
elm_scrolled_entry_single_line_set(se, 1);
|
||||
elm_box_pack_end(bx, se);
|
||||
evas_object_show(se);
|
||||
|
||||
lst = elm_list_add(win);
|
||||
li = elm_list_item_append(lst, "Hello", NULL, NULL, NULL, NULL);
|
||||
elm_list_item_tooltip_text_set(li, "Something useful here?");
|
||||
|
|
|
@ -2309,9 +2309,9 @@ _smart_add(Evas_Object *obj)
|
|||
sd->one_dir_at_a_time = 1;
|
||||
|
||||
evas_object_event_callback_add(obj, EVAS_CALLBACK_KEY_DOWN, _smart_event_key_down, sd);
|
||||
evas_object_propagate_events_set(obj, 0);
|
||||
|
||||
o = edje_object_add(evas_object_evas_get(obj));
|
||||
evas_object_propagate_events_set(o, 0);
|
||||
sd->edje_obj = o;
|
||||
// FIXME: null parent obj ... :(
|
||||
_elm_theme_object_set(NULL, o, "scroller", "base", "default");
|
||||
|
|
Loading…
Reference in New Issue