summaryrefslogtreecommitdiff
path: root/src/select
Commit message (Collapse)AuthorAgeFilesLines
* Select hash: Simplify insertion at start of non-empty list.HEADmasterMichael Drake2019-08-011-11/+10
| | | | This might help Coverity understand what's going on.
* Media queries: Simplify parsed mq data structure slightly.Michael Drake2019-06-111-7/+5
|
* Computed styles: Remove last traces of extension blocks.Michael Drake2019-05-128-722/+548
|
* Computed styles: Drop uncommon extension blocks.Michael Drake2019-05-1224-2732/+2059
| | | | | | | | | | | | | | They were a space saving feature, but they became largely redundant with computed style sharing. They also made the code complex and buggy in many places. E.g. the cascade, inheritance / composition, and intial values all needed to behave corretly when they, or their parent, had or didn't have an uncommon block. Also, only the uncommon block was really used. Fixes: https://bugs.netsurf-browser.org/mantis/view.php?id=2641
* Media queries: Feature matching: Compare lengths in pixels.Michael Drake2019-05-071-39/+141
| | | | | | | | Clients now provide viewport dimensions in pixels. LibCSS can now convert the units from the stylesheet to pixels. Client must also provide default font size and line height for handling viewport and root element relative sizes.
* Media queries: Start implementing feature matching.Michael Drake2019-05-061-5/+85
| | | | | | | | | | | | Currently we just look at: - width - height TODO: - Unit conversion - Use interned string comparison
* Fix typo in assertion.Michael Drake2019-05-051-1/+1
|
* Media queries: Selection: Start implementing mq matching.Michael Drake2019-05-051-8/+60
|
* Media queries: Update selection API to support media queries.Michael Drake2019-05-045-22/+44
| | | | | | | | | | | | | | | | | | | | | The API changes are: 1. When building a selection context, stylesheets added with `css_select_ctx_{append|insert}_sheet()` now have to have media strings associcated with them. Previously they took a simple bitfield for CSS media type. 2. When selecting for an element, the client needs to specify the current media requirements. Previously it only had to provide the bitfield for CSS media type. 3. Same for the css_select_font_faces API. The selection handling has been updated to handle the new API, however it is currently only looking at the media type when performing selection. Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
* Media queries: Fix documentation typo.Michael Drake2019-05-041-1/+1
| | | | Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
* Media queries: Selection: For now, we just say the condition matches.Michael Drake2019-05-041-1/+2
| | | | Signed-off-by: Michael Drake <michael.drake@codethink.co.uk>
* Media Queries: Update stylesheet import for media query lists.Michael Drake2019-03-101-2/+4
|
* Media Queries: Update rule_good_for_media for new mq struct.Michael Drake2019-03-101-6/+44
| | | | | Doesn't currently match media query conditions, only the media type.
* Select generator: Squash undefined behaviour in generated code.Michael Drake2018-07-284-603/+621
| | | | | | | uint8_t is promoted to int instead of unsigned, so it can't hold the values we try to store. Reran `make select_generator` to update generated code.
* Selection: Unify rule good for media helper.Michael Drake2018-07-273-62/+54
|
* Build: Commit generated computed style access source code.Michael Drake2018-01-065-3/+5247
| | | | | | | | This means python3 is not required to build libcss. To re-generate the compute style access code, e.g. when adding new CSS properties, developers must run `make select_generator` and commit the updated generated source code.
* Selection: Autogenerated propset: Fix release of previous strings.Michael Drake2017-11-251-2/+2
|
* Selection: Content prop, use CSS_CONTENT_SET as condition for generator.Michael Drake2017-11-251-1/+1
|
* Select: Bug fixes in the generator.lcneves/select-autogenLucas Neves2017-11-192-18/+17
|
* Add support for new length units.Lucas Neves2017-11-131-0/+13
|
* Select: include autogenerated content in header files.Lucas Neves2017-11-133-5261/+3
|
* Select: autogenerator for computed.h, propset.h and propget.h.Lucas Neves2017-11-136-0/+1273
|
* Squash GCC7 -Wimplicit-fallthrough warnings.Michael Drake2017-10-221-2/+2
|
* Selection: Logic for the flexbox properties.Lucas Neves2017-10-2115-4/+750
|
* Selection: Add support for the flexbox properties.Lucas Neves2017-10-215-48/+640
|
* Strip trailing whitespace.Michael Drake2017-09-04121-497/+497
|
* Fix: Read beyond allocated memory when removing sheet from selection context.Michael Drake2017-06-271-2/+2
| | | | Thanks to 'effin' on #netsurf.
* Interface: Add public API for getting box-sizing from computed style.Michael Drake2017-04-271-0/+5
|
* Selection: Add support for the CSS3 box-sizing property.Michael Drake2017-04-274-15/+52
|
* Parsing: Add support for parsing the CSS3 box-sizing property.Michael Drake2017-04-274-0/+73
|
* Select: Squash error-path leak.Michael Drake2017-02-031-1/+0
| | | | | If we allocated a font-face array previously, and failed to extend it, then we failed to free it on the error path.
* Selection: Inline styles prevent computed style sharing.Michael Drake2016-11-292-12/+27
|
* Selection: Try all previous sibling nodes for sharable styles.Michael Drake2016-11-201-7/+8
| | | | Previously we would only consider the first candidate.
* Selection: Turn off style sharing debug output.Michael Drake2016-11-191-1/+0
|
* Enable sharing where pseudo common pseudo classes are the same.Michael Drake2016-11-192-8/+79
|
* Selection: Abstract common node flags setting code into helper.Michael Drake2016-11-191-44/+22
|
* Debug for recording which nodes fail to share style and why.Michael Drake2016-11-191-0/+50
|
* Documentation: Function param comment fix.Michael Drake2016-11-191-1/+0
|
* Optimisation: Bypass selection by sharing previous sibling's style.Michael Drake2016-11-192-15/+310
|
* Selection: Split out selection state {initi|fin}alisation.Michael Drake2016-11-191-95/+149
|
* Make node data contain list of partial node styles.Michael Drake2016-11-193-2/+29
|
* Separate node data creation and node bloom creation.Michael Drake2016-11-191-18/+37
|
* Allow more than just bloom to be stored on nodes.Michael Drake2016-11-192-45/+90
| | | | | We now have a css_node_data struct which is sored on nodes. It currently contians just the bloom filter.
* Split bloom filter get/set out into helpers.Michael Drake2016-11-191-93/+148
|
* Remove redundant API surface.Michael Drake2016-11-193-8/+14
|
* Remove trailing whitespace.Michael Drake2016-11-191-1/+1
|
* Add comment.Michael Drake2016-11-191-0/+1
|
* Intern partial styles.Michael Drake2016-11-193-9/+129
| | | | | Note this changes the public API. We can't compose directly over child style now, since it may be interned.
* Composition: Avoid extension block checks irrelevent to property group.Michael Drake2016-11-191-14/+18
|
* Change arena hash from FNV-1 to 32-bit MurmurHash2.Michael Drake2016-11-192-17/+68
|