terminology: call donecb later

donecb must be called after the settings objects have been deleted.
Otherwise focus manager will detect that a focused object is deleted,
and performe recoverty things. Those recovery things end up in
terminology in focusing nothing, since the terminal object is not a
elementary widget. Not beeing a elementery widget here means that it is
not visible from the POV of the focus manager.

However, when we emit donecb later on, then the focus is restored (in
the callback) after focus manager has performed its voodoo.

This fixes focus disappearing after going into the settings and going
out of them again.

Reviewed-by: Boris Faure <billiob@gmail.com>
Differential Revision: https://phab.enlightenment.org/D8932
This commit is contained in:
Marcel Hollerbach 2019-05-21 21:01:56 +02:00 committed by Boris Faure
parent 82291544e3
commit 70561160a6
1 changed files with 2 additions and 3 deletions

View File

@ -113,6 +113,8 @@ _cb_opdt_hide_done2(void *data,
evas_object_del(ctx->opbox);
evas_object_del(ctx->frame);
if (ctx->donecb)
ctx->donecb(ctx->donedata);
free(ctx);
elm_cache_all_flush();
}
@ -140,9 +142,6 @@ options_hide(Options_Ctx *ctx)
edje_object_signal_emit(ctx->base, "options,hide", "terminology");
edje_object_signal_emit(ctx->base, "optdetails,hide", "terminology");
if (ctx->donecb)
ctx->donecb(ctx->donedata);
}
static void