summaryrefslogtreecommitdiff
path: root/src/select/select.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/select/select.h')
-rw-r--r--src/select/select.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/src/select/select.h b/src/select/select.h
index fad86ac..1d9a813 100644
--- a/src/select/select.h
+++ b/src/select/select.h
@@ -31,6 +31,32 @@ typedef struct prop_state {
inherit : 1; /* Property is set to inherit */
} prop_state;
+
+typedef enum css_node_flags {
+ CSS_NODE_FLAGS_NONE = 0,
+ CSS_NODE_FLAGS_HAS_HINTS = (1 << 0),
+ CSS_NODE_FLAGS_PSEUDO_CLASS_ACTIVE = (1 << 1),
+ CSS_NODE_FLAGS_PSEUDO_CLASS_FOCUS = (1 << 2),
+ CSS_NODE_FLAGS_PSEUDO_CLASS_HOVER = (1 << 3),
+ CSS_NODE_FLAGS_PSEUDO_CLASS_LINK = (1 << 4),
+ CSS_NODE_FLAGS_PSEUDO_CLASS_VISITED = (1 << 5),
+ CSS_NODE_FLAGS_TAINT_PSEUDO_CLASS = (1 << 6),
+ CSS_NODE_FLAGS_TAINT_ATTRIBUTE = (1 << 7),
+ CSS_NODE_FLAGS_TAINT_SIBLING = (1 << 8),
+ CSS_NODE_FLAGS__PSEUDO_CLASSES_MASK =
+ (CSS_NODE_FLAGS_PSEUDO_CLASS_ACTIVE |
+ CSS_NODE_FLAGS_PSEUDO_CLASS_FOCUS |
+ CSS_NODE_FLAGS_PSEUDO_CLASS_HOVER |
+ CSS_NODE_FLAGS_PSEUDO_CLASS_LINK |
+ CSS_NODE_FLAGS_PSEUDO_CLASS_VISITED),
+} css_node_flags;
+
+struct css_node_data {
+ css_select_results partial;
+ css_bloom *bloom;
+ css_node_flags flags;
+};
+
/**
* Selection state
*/
@@ -58,7 +84,7 @@ typedef struct css_select_state {
reject_item reject_cache[128]; /* Reject cache (filled from end) */
reject_item *next_reject; /* Next free slot in reject cache */
- const css_bloom *bloom; /* Bloom filter */
+ struct css_node_data *node_data; /* Data we'll store on node */
prop_state props[CSS_N_PROPERTIES][CSS_PSEUDO_ELEMENT_COUNT];
} css_select_state;