2694545468
cssnode: Add visibility concept
...
This allows hiding nodes of invisible widgets.
And that in turn makes sure :nth-child() works as expected.
2015-03-18 15:23:31 +01:00
ee91fb71ca
box: Use CSS nodes instead of widget paths
...
This is a very simple patch that causes a bunch of overhead. But it
works.
2015-03-18 15:23:31 +01:00
310f9f40da
cssnode: Add hackery to allow bypassing widget paths
...
If we know the parent's get_path_for_child() implementation is safe to
be used with GtkCssNode because it doesn't do anything special, we do
that. Unfortunately that requires whitelisting vfuncs because the vfunc
is public API so anyone can override it.
2015-03-18 15:23:31 +01:00
ee6d081ed9
cssnode: Remove now unused arg from vfunc
2015-03-18 15:23:31 +01:00
2a5194b635
cssnode: Make widget node not copy the path
...
Instead, use gtk_widget_get_path() which makes GtkWidget cache the path.
This is a temporary solution until we can get rid of widget paths.
This increases memory usage quite noticably.
2015-03-18 15:23:30 +01:00
2143abe5ee
cssnode: Make widget node use new matcher
2015-03-18 15:23:30 +01:00
efda30c495
stylecontext: Don't queue animate tick callbacks anymore
...
Instead, just mark nodes permanently as invalid.
2015-03-18 15:23:30 +01:00
020f3f11c8
cssnode: Handle invalidate queueing differently
...
Instead of directly requesting the layout phase, register a tick
callback. This is what the docs suggest for animations and it's what we
need for the next commit.
2015-03-18 15:23:30 +01:00
cdd964a3af
cssnode: Change way invalidation is handled
...
Have a queue_validate() vfunc and a dequeue_validate() vfunc that are
called only on root nodes so they can queue a validation on their frame
clocks.
2015-03-18 15:23:30 +01:00
5f19f09ac3
cssnode: Refactor gtk_css_widget_node_validate()
...
Makes it clearer what actually happens in that function.
2015-03-18 15:23:30 +01:00
219e52f7e1
cssnode: Automatically recreate style on get_style() call
...
When the style is invalid, redo it.
Make this a vfunc, so the widget nodes can opt out.
2015-03-18 15:23:30 +01:00
71813671ef
cssnode: Track pending changes here
...
... instead of GtkCssWidgetNode.
2015-03-18 15:23:30 +01:00
c550cf122a
stylecontext: Move gtk_style_context_validate() to GtkCssWidgetNode
2015-03-18 15:23:30 +01:00
03ac5f310b
cssnode: Add gtk_style_context_get_style_provider()
...
... and use it when looking up properties.
2015-03-18 15:23:29 +01:00
4cc2af2db1
stylecontext: Move validation into GtkCssNode
2015-03-18 15:23:29 +01:00
55e68bc2ea
cssnode: Track invalid flag
...
Remove it from GtkStyleContext.
2015-03-18 15:23:29 +01:00
8c73799ca8
stylecontext: Move relevant_changes tracking to GtkCssWidgetNode
2015-03-18 15:23:29 +01:00
7bafb63ec3
cssnode: Handle invalidation
...
Handle invalidation of node inside the CssNode code, don't do it in the
stylecontext.
2015-03-18 15:23:29 +01:00
d79a44c1af
stylecontext: Get rid of create_query_path()
...
Move that functionality into GtkCssNode.
2015-03-18 15:23:29 +01:00
e2f6d4db43
cssnode: Split into 3 objects
...
- GtkCssWidgetNode
for style contexts owned by a widget
- GtkCssPathNode
for style contexts using a GtkWidgetPath
- GtkCssTransientNode
for nodes created with gtk_style_context_save()/restore()
2015-03-18 15:23:29 +01:00