Index: gtkhtml4.0-4.4.4/gtkhtml/htmlsettings.c
===================================================================
--- gtkhtml4.0-4.4.4.orig/gtkhtml/htmlsettings.c 2014-06-21 23:28:01.485347916 -0700
+++ gtkhtml4.0-4.4.4/gtkhtml/htmlsettings.c 2014-06-21 23:47:06.256801677 -0700
@@ -39,7 +39,7 @@
s->fontBaseFace = g_strdup ("times");
s->fixedFontFace = g_strdup ("courier");
s->underlineLinks = TRUE;
- s->forceDefault = FALSE;
+ s->forceDefault = TRUE;
html_settings_reset_font_sizes (s);
Index: gtkhtml4.0-4.4.4/gtkhtml/htmlengine.c
===================================================================
--- gtkhtml4.0-4.4.4.orig/gtkhtml/htmlengine.c 2014-06-21 23:57:11.593191568 -0700
+++ gtkhtml4.0-4.4.4/gtkhtml/htmlengine.c 2014-06-22 00:32:14.934748983 -0700
@@ -436,14 +436,16 @@
g_return_val_if_fail ( HTML_IS_ENGINE (e), NULL );
- for (item = e->span_stack->list; item; item = item->next) {
- span = item->data;
+ if (!e->defaultSettings->forceDefault) {
+ for (item = e->span_stack->list; item; item = item->next) {
+ span = item->data;
- if (span->style->display >= DISPLAY_TABLE_CELL)
- break;
+ if (span->style->display >= DISPLAY_TABLE_CELL)
+ break;
- if (span->style && span->style->color)
- return span->style->color;
+ if (span->style && span->style->color)
+ return span->style->color;
+ }
}
return html_colorset_get_color (e->settings->color_set, HTMLTextColor);
@@ -457,6 +459,9 @@
g_return_val_if_fail (HTML_IS_ENGINE (e), NULL);
+ if (e->defaultSettings->forceDefault)
+ return NULL;
+
for (item = e->span_stack->list; item; item = item->next) {
span = item->data;
@@ -482,6 +487,9 @@
g_return_val_if_fail (HTML_IS_ENGINE (e), NULL);
+ if (e->defaultSettings->forceDefault)
+ return NULL;
+
for (item = e->span_stack->list; item; item = item->next) {
span = item->data;
if (span->style->display == DISPLAY_TABLE_ROW)
@@ -999,6 +1007,28 @@
static void block_end_cell (HTMLEngine *e, HTMLObject *clue, HTMLElement *elem);
static void pop_element_by_type (HTMLEngine *e, HTMLDisplayType display);
+static void
+hide_colors_from_style (HTMLStyle *style,
+ HTMLColor **color, HTMLColor **bg_color)
+{
+ g_assert (color);
+ g_assert (bg_color);
+
+ *color = style->color;
+ *bg_color = style->bg_color;
+
+ style->color = NULL;
+ style->bg_color = NULL;
+}
+
+static void
+unhide_colors_from_style (HTMLStyle *style,
+ HTMLColor *color, HTMLColor *bg_color)
+{
+ style->color = color;
+ style->bg_color = bg_color;
+}
+
/* Block stack. */
static void
html_element_push (HTMLElement *node,
@@ -1006,6 +1036,7 @@
HTMLObject *clue)
{
HTMLObject *block_clue;
+ HTMLColor *st_color = NULL, *st_bg_color = NULL;
g_return_if_fail (HTML_IS_ENGINE (e));
@@ -1016,7 +1047,11 @@
update_flow_align (e, clue);
node->exitFunc = block_end_display_block;
block_clue = html_cluev_new (0, 0, 100);
+ if (e->defaultSettings->forceDefault)
+ hide_colors_from_style (node->style, &st_color, &st_bg_color);
html_cluev_set_style (HTML_CLUEV (block_clue), node->style);
+ if (e->defaultSettings->forceDefault)
+ unhide_colors_from_style (node->style, st_color, st_bg_color);
html_clue_append (HTML_CLUE (e->parser_clue), block_clue);
push_clue (e, block_clue);
html_stack_push (e->span_stack, node);
@@ -3492,7 +3527,7 @@
html_element_set_coreattr_to_object (element, HTML_OBJECT (table), e);
html_element_set_coreattr_to_object (element, HTML_OBJECT (table), e);
- if (element->style->bg_color)
+ if (!e->defaultSettings->forceDefault && element->style->bg_color)
table->bgColor = gdk_color_copy ((GdkColor *) element->style->bg_color);
if (element->style->bg_image)
@@ -3516,7 +3551,7 @@
len && len->type == HTML_LENGTH_TYPE_PERCENT ? len->val : 0,
padding, spacing, border));
- if (element->style->bg_color)
+ if (!e->defaultSettings->forceDefault && element->style->bg_color)
table->bgColor = gdk_color_copy ((GdkColor *) element->style->bg_color);
if (element->style->bg_image)
@@ -3691,6 +3726,7 @@
gchar *value;
HTMLLength *len;
HTMLDirection dir = HTML_DIRECTION_DERIVED;
+ HTMLColor *st_color = NULL, *st_bg_color = NULL;
element = html_element_new_parse (e, str);
@@ -3771,7 +3807,11 @@
html_element_set_coreattr_to_object (element, HTML_OBJECT (cell), e);
html_style_set_padding (element->style, table->padding);
+ if (e->defaultSettings->forceDefault)
+ hide_colors_from_style (element->style, &st_color, &st_bg_color);
html_cluev_set_style (HTML_CLUEV (cell), element->style);
+ if (e->defaultSettings->forceDefault)
+ unhide_colors_from_style (element->style, st_color, st_bg_color);
cell->no_wrap = no_wrap;
cell->heading = heading;
@@ -3780,7 +3820,10 @@
pop_element_by_type (e, DISPLAY_TABLE_CELL);
pop_element_by_type (e, DISPLAY_TABLE_CAPTION);
- html_object_set_bg_color (HTML_OBJECT (cell), element->style->bg_color ? &element->style->bg_color->color : ¤t_row_bg_color (e)->color);
+ html_object_set_bg_color (HTML_OBJECT (cell),
+ !e->defaultSettings->forceDefault && element->style->bg_color ?
+ &element->style->bg_color->color :
+ ¤t_row_bg_color (e)->color);
image_url = element->style->bg_image ? element->style->bg_image : current_row_bg_image (e);
if (image_url) {