return -1;
}
- if (info->state == WIDGET_STATE_DETACHED) {
- __push_event_queue(info, event);
- return 0;
+ if (event != WIDGET_INSTANCE_EVENT_FAULT &&
+ event != WIDGET_INSTANCE_EVENT_CREATE_ABORTED) {
+ if (info->state == WIDGET_STATE_DETACHED) {
+ __push_event_queue(info, event);
+ return 0;
+ }
}
DbgPrint("update: %s (%d)", instance_id, event);
widget_instance_unref(handle);
break;
case WIDGET_INSTANCE_EVENT_FAULT:
+ event_info.error = WIDGET_ERROR_FAULT;
event_info.event = WIDGET_FAULT_DEACTIVATED;
smart_signal = WIDGET_SMART_SIGNAL_WIDGET_FAULTED;
info->pid = -1;
__display_overlay_text(info);
break;
case WIDGET_INSTANCE_EVENT_CREATE_ABORTED:
+ event_info.error = WIDGET_ERROR_CANCELED;
event_info.event = WIDGET_EVENT_CREATED;
smart_signal = WIDGET_SMART_SIGNAL_WIDGET_CREATE_ABORTED;
+ info->pid = -1;
info->is_faulted = true;
__display_overlay_text(info);
break;