mirror of
https://git.yoctoproject.org/poky
synced 2026-05-02 00:32:12 +02:00
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@277 311d38ba-8fff-0310-9ca6-ca027cbcb966
142 lines
4.7 KiB
Diff
142 lines
4.7 KiB
Diff
Index: libgtkhtml/document/htmldocument.c
|
|
===================================================================
|
|
--- libgtkhtml/document/htmldocument.c.orig 2006-02-11 05:21:28.000000000 +0000
|
|
+++ libgtkhtml/document/htmldocument.c 2006-02-11 15:41:06.000000000 +0000
|
|
@@ -48,6 +48,7 @@ enum {
|
|
|
|
/* DOM change events */
|
|
NODE_INSERTED,
|
|
+ NODE_FINISHED,
|
|
NODE_REMOVED,
|
|
TEXT_UPDATED,
|
|
STYLE_UPDATED,
|
|
@@ -536,6 +537,12 @@ html_document_new_node (HtmlParser *pars
|
|
}
|
|
|
|
static void
|
|
+html_document_finished_node (HtmlParser *parser, DomNode *node, HtmlDocument *document)
|
|
+{
|
|
+ g_signal_emit (G_OBJECT (document), document_signals [NODE_FINISHED], 0, node);
|
|
+}
|
|
+
|
|
+static void
|
|
html_document_finalize (GObject *object)
|
|
{
|
|
HtmlDocument *document = HTML_DOCUMENT (object);
|
|
@@ -639,6 +646,16 @@ html_document_class_init (HtmlDocumentCl
|
|
g_cclosure_marshal_VOID__OBJECT,
|
|
G_TYPE_NONE, 1,
|
|
DOM_TYPE_NODE);
|
|
+
|
|
+ document_signals [NODE_FINISHED] =
|
|
+ g_signal_new ("node_finished",
|
|
+ G_TYPE_FROM_CLASS (object_class),
|
|
+ G_SIGNAL_RUN_LAST,
|
|
+ G_STRUCT_OFFSET (HtmlDocumentClass, node_finished),
|
|
+ NULL, NULL,
|
|
+ g_cclosure_marshal_VOID__OBJECT,
|
|
+ G_TYPE_NONE, 1,
|
|
+ DOM_TYPE_NODE);
|
|
|
|
document_signals [NODE_REMOVED] =
|
|
g_signal_new ("node_removed",
|
|
@@ -818,6 +835,9 @@ html_document_open_stream (HtmlDocument
|
|
g_signal_connect (document->parser, "done_parsing",
|
|
(GCallback) html_document_done_parsing,
|
|
document);
|
|
+ g_signal_connect (document->parser, "finished_node",
|
|
+ (GCallback) html_document_finished_node,
|
|
+ document);
|
|
|
|
document->state = HTML_DOCUMENT_STATE_PARSING;
|
|
return TRUE;
|
|
Index: libgtkhtml/document/htmldocument.h
|
|
===================================================================
|
|
--- libgtkhtml/document/htmldocument.h.orig 2006-02-11 05:21:28.000000000 +0000
|
|
+++ libgtkhtml/document/htmldocument.h 2006-02-11 15:35:38.000000000 +0000
|
|
@@ -80,6 +80,7 @@ struct _HtmlDocumentClass {
|
|
|
|
/* DOM change events */
|
|
void (*node_inserted) (HtmlDocument *document, DomNode *node);
|
|
+ void (*node_finished) (HtmlDocument *document, DomNode *node);
|
|
void (*node_removed) (HtmlDocument *document, DomNode *node);
|
|
void (*text_updated) (HtmlDocument *document, DomNode *node);
|
|
void (*style_updated) (HtmlDocument *document, DomNode *node, HtmlStyleChange style_change);
|
|
Index: libgtkhtml/document/htmlparser.c
|
|
===================================================================
|
|
--- libgtkhtml/document/htmlparser.c.orig 2006-01-17 11:50:54.000000000 +0000
|
|
+++ libgtkhtml/document/htmlparser.c 2006-02-11 17:21:20.000000000 +0000
|
|
@@ -28,6 +28,7 @@ enum {
|
|
NEW_NODE,
|
|
DONE_PARSING,
|
|
PARSED_DOCUMENT_NODE,
|
|
+ FINISHED_NODE,
|
|
LAST_SIGNAL
|
|
};
|
|
|
|
@@ -84,8 +85,13 @@ static void
|
|
html_endElement (void *ctx, const xmlChar *name)
|
|
{
|
|
HtmlParser *parser = HTML_PARSER (ctx);
|
|
+ DomNode *node;
|
|
|
|
xmlSAX2EndElement (parser->xmlctxt, name);
|
|
+
|
|
+ node = dom_Node_mkref (xmlGetLastChild (parser->xmlctxt->node));
|
|
+ if (node)
|
|
+ g_signal_emit (G_OBJECT (parser), parser_signals [FINISHED_NODE], 0, node);
|
|
}
|
|
|
|
static void
|
|
@@ -241,6 +247,15 @@ html_parser_class_init (HtmlParserClass
|
|
g_cclosure_marshal_VOID__VOID,
|
|
G_TYPE_NONE, 0);
|
|
|
|
+ parser_signals [FINISHED_NODE] =
|
|
+ g_signal_new ("finished_node",
|
|
+ G_TYPE_FROM_CLASS (object_class),
|
|
+ G_SIGNAL_RUN_LAST,
|
|
+ G_STRUCT_OFFSET (HtmlParserClass, finished_node),
|
|
+ NULL, NULL,
|
|
+ g_cclosure_marshal_VOID__OBJECT,
|
|
+ G_TYPE_NONE, 1,
|
|
+ DOM_TYPE_NODE);
|
|
}
|
|
|
|
static void
|
|
@@ -281,11 +296,11 @@ html_parser_set_type (HtmlParser *parser
|
|
/* FIXME: Free parser if existing */
|
|
if (parser_type == HTML_PARSER_TYPE_HTML) {
|
|
parser->xmlctxt = htmlCreatePushParserCtxt (SAXHandler, parser,
|
|
- parser->chars, parser->res, NULL, 0);
|
|
+ NULL, 0, NULL, 0);
|
|
}
|
|
else {
|
|
parser->xmlctxt = xmlCreatePushParserCtxt (SAXHandler, parser,
|
|
- parser->chars, parser->res, NULL);
|
|
+ NULL, 0, NULL);
|
|
}
|
|
|
|
|
|
Index: libgtkhtml/document/htmlparser.h
|
|
===================================================================
|
|
--- libgtkhtml/document/htmlparser.h.orig 2006-01-17 11:50:54.000000000 +0000
|
|
+++ libgtkhtml/document/htmlparser.h 2006-02-11 18:57:51.000000000 +0000
|
|
@@ -57,8 +57,6 @@ struct _HtmlParser {
|
|
|
|
/* Used by libxml */
|
|
xmlParserCtxtPtr xmlctxt;
|
|
- int res;
|
|
- char chars[10];
|
|
|
|
gboolean blocking;
|
|
DomNode *blocking_node;
|
|
@@ -71,6 +69,7 @@ struct _HtmlParserClass {
|
|
void (* done_parsing) (HtmlParser *parser);
|
|
void (* new_node) (HtmlParser *parser, DomNode *node);
|
|
void (* parsed_document_node) (HtmlParser *parser, DomDocument *document);
|
|
+ void (* finished_node) (HtmlParser *parser, DomNode *node);
|
|
};
|
|
typedef struct _HtmlParserClass HtmlParserClass;
|
|
|