diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2012-08-15 19:00:50 +0100 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2012-08-15 19:00:50 +0100 |
commit | e5374cc042645cc03bccb37fea0730d88a5ae879 (patch) | |
tree | e8ce7553d44292bb54f21ab5c637e5ab621cc9f5 /render/html.c | |
parent | 5fb51a0fb76707e1b5dac4bbe04613d0396d7bc0 (diff) | |
download | netsurf-e5374cc042645cc03bccb37fea0730d88a5ae879.tar.gz netsurf-e5374cc042645cc03bccb37fea0730d88a5ae879.tar.bz2 |
Let contents broadcast explicit status messages as well as announce that their internal status has been updated.
Diffstat (limited to 'render/html.c')
-rw-r--r-- | render/html.c | 27 |
1 files changed, 20 insertions, 7 deletions
diff --git a/render/html.c b/render/html.c index fc2f2b8b7..7f3c761bb 100644 --- a/render/html.c +++ b/render/html.c @@ -240,6 +240,7 @@ void html_finish_conversion(html_content *c) /* convert xml tree to box tree */ LOG(("XML to box (%p)", c)); content_set_status(&c->base, messages_get("Processing")); + msg_data.explicit_status_text = NULL; content_broadcast(&c->base, CONTENT_MSG_STATUS, msg_data); exc = dom_document_get_document_element(c->document, (void *) &html); @@ -1168,14 +1169,18 @@ html_object_callback(hlcache_handle *object, LOG(("%d fetches active", c->base.active)); content_add_error(&c->base, "?", 0); - html_set_status(c, event->data.error); - content_broadcast(&c->base, CONTENT_MSG_STATUS, event->data); html_object_failed(box, c, o->background); break; case CONTENT_MSG_STATUS: - html_set_status(c, content_get_status_message(object)); - /* content_broadcast(&c->base, CONTENT_MSG_STATUS, 0); */ + if (event->data.explicit_status_text == NULL) { + /* Object content's status text updated */ + html_set_status(c, content_get_status_message(object)); + } else { + /* Object content wants to set explicit message */ + content_broadcast(&c->base, CONTENT_MSG_STATUS, + event->data); + } break; case CONTENT_MSG_REFORMAT: @@ -1406,9 +1411,17 @@ html_convert_css_callback(hlcache_handle *css, break; case CONTENT_MSG_STATUS: - html_set_status(parent, content_get_status_message(css)); - content_broadcast(&parent->base, CONTENT_MSG_STATUS, - event->data); + if (event->data.explicit_status_text == NULL) { + /* Object content's status text updated */ + html_set_status(parent, + content_get_status_message(css)); + content_broadcast(&parent->base, CONTENT_MSG_STATUS, + event->data); + } else { + /* Object content wants to set explicit message */ + content_broadcast(&parent->base, CONTENT_MSG_STATUS, + event->data); + } break; default: |