forked from enlightenment/terminology
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:
parent
85372bfd27
commit
2168e6a85f
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue