set focus on editor correctly.

previous menu_open_depth() is invalid bacause the menu would have close animation.
so right after closing the menu, the menu depth was invalid.

now get the menu depth and set focus on the editor after closing animation is finished.
This commit is contained in:
ChunEon Park 2014-07-12 17:17:18 +09:00
parent 464e84a6de
commit 01ceaa935c
4 changed files with 16 additions and 14 deletions

View File

@ -164,8 +164,8 @@ void
goto_close()
{
goto_data *gd = g_gd;
if (!gd) return;
if (!gd) return;
//Save last state
evas_object_geometry_get(gd->win, NULL, NULL, &win_w, &win_h);
elm_win_screen_position_get(gd->win, &win_x, &win_y);

View File

@ -204,8 +204,6 @@ main_key_down_cb(void *data, int type EINA_UNUSED, void *ev)
return ECORE_CALLBACK_DONE;
}
menu_toggle();
if (menu_open_depth() == 0)
edit_focus_set(ad->ed);
return ECORE_CALLBACK_DONE;
}

View File

@ -94,11 +94,10 @@ newfile_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_del(md->newfile_layout);
md->newfile_layout = NULL;
md->open_depth--;
if (md->menu_layout)
{
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
}
if (md->open_depth == 0) edit_focus_set(md->ed);
if (!md->menu_layout) return;
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
}
static void
@ -110,11 +109,10 @@ fileselector_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_del(md->fileselector_layout);
md->fileselector_layout = NULL;
md->open_depth--;
if (md->menu_layout)
{
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
}
if (md->open_depth == 0) edit_focus_set(md->ed);
if (!md->menu_layout) return;
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
}
static void
@ -126,6 +124,7 @@ setting_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_del(md->setting_layout);
md->setting_layout = NULL;
md->open_depth--;
if (md->open_depth == 0) edit_focus_set(md->ed);
if (!md->menu_layout) return;
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
@ -140,6 +139,7 @@ about_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_del(md->about_layout);
md->about_layout = NULL;
md->open_depth--;
if (md->open_depth == 0) edit_focus_set(md->ed);
if (!md->menu_layout) return;
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
@ -154,6 +154,7 @@ menu_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_del(md->menu_layout);
md->menu_layout = NULL;
md->open_depth--;
if (md->open_depth == 0) edit_focus_set(md->ed);
}
static void
@ -165,6 +166,7 @@ warning_dismiss_done(void *data, Evas_Object *obj EINA_UNUSED,
evas_object_del(md->warning_layout);
md->warning_layout = NULL;
md->open_depth--;
if (md->open_depth == 0) edit_focus_set(md->ed);
if (!md->menu_layout) return;
elm_object_disabled_set(md->menu_layout, EINA_FALSE);
elm_object_focus_set(md->menu_layout, EINA_TRUE);
@ -1172,6 +1174,7 @@ int
menu_open_depth()
{
menu_data *md = g_md;
if (!md) return 0;
return md->open_depth;
}

View File

@ -87,7 +87,8 @@ static void
goto_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
edit_data *ed = data;
goto_open(ed);
if (goto_is_opened()) goto_close();
else goto_open(ed);
item_unselect((Elm_Object_Item *)event_info);
}