1
0
mirror of https://github.com/netsurf-browser/netsurf synced 2025-01-12 13:59:20 +03:00

Table cell nowrap attribute is presentational hint, not UA style.

This commit is contained in:
Michael Drake 2016-10-13 12:44:27 +01:00
parent 22d917c92d
commit b42d253f86
4 changed files with 21 additions and 2 deletions
!NetSurf/Resources
content/handlers/css
utils

View File

@ -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; }

View File

@ -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);

View File

@ -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);

View File

@ -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;