summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2016-10-13 11:44:27 (GMT)
committer Michael Drake <tlsa@netsurf-browser.org>2016-10-13 11:44:27 (GMT)
commitb42d253f8697f8d2afa0d25367aa722f4a0c0812 (patch)
tree98ecb56d3f6cd545d7150b6d33e3f9f83e5583d7
parent22d917c92d3f49379a57bad3dcd4b87817717848 (diff)
downloadnetsurf-b42d253f8697f8d2afa0d25367aa722f4a0c0812.tar.gz
netsurf-b42d253f8697f8d2afa0d25367aa722f4a0c0812.tar.bz2
Table cell nowrap attribute is presentational hint, not UA style.
-rw-r--r--!NetSurf/Resources/CSS,f792
-rw-r--r--content/handlers/css/hints.c17
-rw-r--r--utils/corestrings.c3
-rw-r--r--utils/corestrings.h1
4 files changed, 21 insertions, 2 deletions
diff --git a/!NetSurf/Resources/CSS,f79 b/!NetSurf/Resources/CSS,f79
index 3892aff..464fcda 100644
--- a/!NetSurf/Resources/CSS,f79
+++ b/!NetSurf/Resources/CSS,f79
@@ -87,8 +87,6 @@ tr { display: table-row; vertical-align: inherit; }
td, th { display: table-cell; vertical-align: inherit; padding: 1px; }
th { font-weight: bold; text-align: center; }
-td[nowrap], th[nowrap] { white-space: nowrap; }
-
a:link { color: #00f; text-decoration: underline; }
a:visited { color: #609; }
diff --git a/content/handlers/css/hints.c b/content/handlers/css/hints.c
index fd25d53..a962123 100644
--- a/content/handlers/css/hints.c
+++ b/content/handlers/css/hints.c
@@ -1497,6 +1497,22 @@ static void css_hint_bg_image(
}
}
+static void css_hint_white_space_nowrap(
+ nscss_select_ctx *ctx,
+ dom_node *node)
+{
+ struct css_hint *hint = &(hint_ctx.hints[hint_ctx.len]);
+ dom_exception err;
+ bool nowrap;
+
+ err = dom_element_has_attribute(node, corestring_dom_nowrap, &nowrap);
+ if (err == DOM_NO_ERR && nowrap == true) {
+ hint->prop = CSS_PROP_WHITE_SPACE;
+ hint->status = CSS_WHITE_SPACE_NOWRAP;
+ hint = css_hint_advance(hint);
+ }
+}
+
/* Exported function, documeted in css/hints.h */
css_error node_presentational_hint(void *pw, void *node,
@@ -1517,6 +1533,7 @@ css_error node_presentational_hint(void *pw, void *node,
case DOM_HTML_ELEMENT_TYPE_TD:
css_hint_width(pw, node);
css_hint_table_cell_border_padding(pw, node);
+ css_hint_white_space_nowrap(pw, node);
/* fallthrough */
case DOM_HTML_ELEMENT_TYPE_TR:
css_hint_height(pw, node);
diff --git a/utils/corestrings.c b/utils/corestrings.c
index 0afad9f..363c851 100644
--- a/utils/corestrings.c
+++ b/utils/corestrings.c
@@ -210,6 +210,7 @@ dom_string *corestring_dom_mousewheel;
dom_string *corestring_dom_name;
dom_string *corestring_dom_nohref;
dom_string *corestring_dom_noresize;
+dom_string *corestring_dom_nowrap;
dom_string *corestring_dom_offline;
dom_string *corestring_dom_online;
dom_string *corestring_dom_pagehide;
@@ -490,6 +491,7 @@ void corestrings_fini(void)
CSS_DOM_STRING_UNREF(name);
CSS_DOM_STRING_UNREF(nohref);
CSS_DOM_STRING_UNREF(noresize);
+ CSS_DOM_STRING_UNREF(nowrap);
CSS_DOM_STRING_UNREF(offline);
CSS_DOM_STRING_UNREF(online);
CSS_DOM_STRING_UNREF(pagehide);
@@ -823,6 +825,7 @@ nserror corestrings_init(void)
CSS_DOM_STRING_INTERN(name);
CSS_DOM_STRING_INTERN(nohref);
CSS_DOM_STRING_INTERN(noresize);
+ CSS_DOM_STRING_INTERN(nowrap);
CSS_DOM_STRING_INTERN(offline);
CSS_DOM_STRING_INTERN(online);
CSS_DOM_STRING_INTERN(pagehide);
diff --git a/utils/corestrings.h b/utils/corestrings.h
index 280098b..a02bdda 100644
--- a/utils/corestrings.h
+++ b/utils/corestrings.h
@@ -221,6 +221,7 @@ extern struct dom_string *corestring_dom_mousewheel;
extern struct dom_string *corestring_dom_name;
extern struct dom_string *corestring_dom_nohref;
extern struct dom_string *corestring_dom_noresize;
+extern struct dom_string *corestring_dom_nowrap;
extern struct dom_string *corestring_dom_offline;
extern struct dom_string *corestring_dom_online;
extern struct dom_string *corestring_dom_pagehide;