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
82291544e3
commit
70561160a6
|
@ -113,6 +113,8 @@ _cb_opdt_hide_done2(void *data,
|
||||||
evas_object_del(ctx->opbox);
|
evas_object_del(ctx->opbox);
|
||||||
evas_object_del(ctx->frame);
|
evas_object_del(ctx->frame);
|
||||||
|
|
||||||
|
if (ctx->donecb)
|
||||||
|
ctx->donecb(ctx->donedata);
|
||||||
free(ctx);
|
free(ctx);
|
||||||
elm_cache_all_flush();
|
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, "options,hide", "terminology");
|
||||||
edje_object_signal_emit(ctx->base, "optdetails,hide", "terminology");
|
edje_object_signal_emit(ctx->base, "optdetails,hide", "terminology");
|
||||||
|
|
||||||
if (ctx->donecb)
|
|
||||||
ctx->donecb(ctx->donedata);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
Loading…
Reference in New Issue