+static void __update_pending_content(
+ appcore_multiwindow_base_instance_h instance_h,
+ const char *content_raw)
+{
+ widget_base_instance_data *data;
+
+ data = (widget_base_instance_data *)
+ appcore_multiwindow_base_instance_get_extra(instance_h);
+
+ if (data->pending_content) {
+ free(data->pending_content);
+ data->pending_content = NULL;
+ }
+
+ if (content_raw) {
+ data->pending_content = strdup(content_raw);
+ if (data->pending_content == NULL)
+ LOGW("Out of memory");
+ }
+
+ data->pending_update = true;
+}
+
+static void __update_process(const char *class_id, const char *id,
+ appcore_multiwindow_base_instance_h instance_h, void *data)
+{
+ char *content_raw = NULL;
+ char *force_str = NULL;
+ int force;
+ bundle *b = data;
+
+ if (!b) {
+ LOGE("bundle is NULL");
+ return;
+ }
+
+ bundle_get_str(b, WIDGET_K_FORCE, &force_str);
+
+ if (force_str && strcmp(force_str, "true") == 0)
+ force = 1;
+ else
+ force = 0;
+
+ bundle_get_str(b, WIDGET_K_CONTENT_INFO, &content_raw);
+ if (!appcore_multiwindow_base_instance_is_resumed(instance_h) && !force)
+ __update_pending_content(instance_h, content_raw);
+ else
+ __call_update_cb(class_id, id, force, content_raw);
+}
+