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
terminology-1.4
Marcel Hollerbach 4 years ago committed by Boris Faure
parent 82291544e3
commit 70561160a6
  1. 5
      src/bin/options.c

@ -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…
Cancel
Save