static void osk_destroyed(glw_ps3_t *gp) { glw_t *w = gp->osk_widget; assert(w != NULL); if(!(w->glw_flags & GLW_DESTROYING)) { event_t *e = event_create_action(ACTION_SUBMIT); glw_event_to_widget(w, e); event_release(e); } glw_unref(w); gp->osk_widget = NULL; if(gp->osk_container != 0xFFFFFFFFU) lv2MemContinerDestroy(gp->osk_container); }
void glw_fini(glw_root_t *gr) { if(gr->gr_osk_widget != NULL) { glw_unref(gr->gr_osk_widget); prop_unsubscribe(gr->gr_osk_text_sub); prop_unsubscribe(gr->gr_osk_ev_sub); } glw_text_bitmap_fini(gr); rstr_release(gr->gr_default_font); glw_tex_fini(gr); free(gr->gr_skin); prop_unsubscribe(gr->gr_evsub); pool_destroy(gr->gr_token_pool); pool_destroy(gr->gr_clone_pool); prop_courier_destroy(gr->gr_courier); hts_mutex_destroy(&gr->gr_mutex); }