focus: when focus_highlight is enabled, it should be shown immediately.

This commit is contained in:
WooHyun Jung 2014-07-04 11:16:59 +09:00
parent bf3fe85b0d
commit 70a33c9d11
2 changed files with 30 additions and 2 deletions

View File

@ -59,6 +59,15 @@ _tb_sel(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
printf("tb sel %p\n", obj);
}
static void
_focus_highlight_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
if (elm_check_state_get(obj))
elm_win_focus_highlight_enabled_set(data, EINA_TRUE);
else
elm_win_focus_highlight_enabled_set(data, EINA_FALSE);
}
static void
_focus_anim_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
@ -429,9 +438,19 @@ test_focus(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_inf
{
Evas_Object *ck;
ck = elm_check_add(bx);
elm_object_text_set(ck, "Focus Highlight Enable");
elm_check_state_set(ck, elm_win_focus_highlight_enabled_get(win));
elm_box_pack_end(bx, ck);
my_show(ck);
evas_object_smart_callback_add(ck, "changed",
_focus_highlight_changed,
win);
ck = elm_check_add(bx);
elm_object_text_set(ck, "Focus Highlight Animation Enable");
elm_check_state_set(ck, elm_config_focus_highlight_animate_get());
elm_check_state_set(ck, elm_win_focus_highlight_animate_get(win));
elm_box_pack_end(bx, ck);
my_show(ck);
evas_object_smart_callback_add(ck, "changed",

View File

@ -2281,7 +2281,16 @@ _elm_win_focus_highlight_init(Elm_Win_Data *sd)
EVAS_CALLBACK_CANVAS_OBJECT_FOCUS_OUT,
_elm_win_object_focus_out, sd->obj);
sd->focus_highlight.cur.target = NULL;
sd->focus_highlight.cur.target = _elm_win_focus_target_get(evas_focus_get(sd->evas));
if (sd->focus_highlight.cur.target)
{
if (elm_widget_highlight_in_theme_get(sd->focus_highlight.cur.target))
sd->focus_highlight.cur.in_theme = EINA_TRUE;
else
_elm_win_focus_target_callbacks_add(sd);
}
sd->focus_highlight.prev.target = NULL;
sd->focus_highlight.fobj = edje_object_add(sd->evas);
sd->focus_highlight.theme_changed = EINA_TRUE;