Benjamin Otte
5ac9ba714a
styleproperty: Make _gtk_style_property_query() take a GValue
...
... and don't make it return a GtkCssValue. We want to use this for
compat with the old GValue APIs after all...
2012-04-17 08:59:11 +02:00
Benjamin Otte
58e4fdf911
styleproperty: Make print_func take a GtkCssValue
...
Also, constify GtkCssValue getters, so we can pass a const GtkCssValue
to the print_func.
2012-04-17 08:59:11 +02:00
Benjamin Otte
b728cfd3e8
cssvalue: Make the structure vtable-based
...
Don't use real classes, just a vtable.
2012-04-17 08:59:11 +02:00
Benjamin Otte
3cdb9c91ca
styleproperty: Add support for equal_func
2012-04-17 08:59:11 +02:00
Benjamin Otte
d5a2392cc7
stylecontext: Don't clear cache when only state changes
...
This takes more memory, but changes to backdrop or active state are
quite expensive otherwise.
2012-04-17 08:59:11 +02:00
Benjamin Otte
44187ca3b5
cssmatcher: Use quarks for classes
2012-04-17 08:59:10 +02:00
Benjamin Otte
115c34498e
styleproperty: Add a function to compare values for equality
...
and default to never compare them as equal.
2012-04-17 08:59:10 +02:00
Benjamin Otte
5bbf59b519
cssvalue: Constify a bunch of APIs
2012-04-17 08:59:10 +02:00
Benjamin Otte
4a12717e4d
cssvalue: Remove unused functions
2012-04-17 08:59:10 +02:00
Benjamin Otte
585a1fae4f
stylecontext: Really queue style changes
...
Instead of instantly applying a new style, just mark the context as
invalid. Only apply the new style at layout time.
2012-04-17 08:59:10 +02:00
Benjamin Otte
eb537b60f4
stylecontext: Optimize the common case of "style didn't change"
2012-04-17 08:59:10 +02:00
Benjamin Otte
ece9d2fd92
gtk: Make widget only invalidate widget positions
...
Instead of resetting them completely
2012-04-17 08:59:10 +02:00
Benjamin Otte
e7a984b337
window: Set parent context instead of just resetting style
...
Otherwise the inherit properties won't inherit properly.
2012-04-17 08:59:10 +02:00
Benjamin Otte
27c9352df3
widget: Replace reset_style() calls
...
... with finer grained _gtk_widget_invalidate_style_context() calls.
2012-04-17 08:59:10 +02:00
Benjamin Otte
969daec353
widget: Don't go via path when resetting style
...
Instead, invalidate the path when the style context changes. And
invalidate the style context directly.
2012-04-17 08:59:09 +02:00
Benjamin Otte
d589566f40
widget: Add _gtk_widget_invalidate_style_context()
...
This is supposed to replace gtk_widget_reset_style().
2012-04-17 08:59:09 +02:00
Benjamin Otte
48a8ca8bbe
widget: Merge function into only caller
2012-04-17 08:59:09 +02:00
Benjamin Otte
257d961a01
widget: Clear broken widget path in constructor
...
... where it belongs instead of fiddling with it in get_path().
2012-04-17 08:59:09 +02:00
Benjamin Otte
198cf93f0f
stylecontext: On failure, exit the loop, don't try again
...
Because we will fail again. And then we try again. And then we fail
again. Ad infinitum.
2012-04-17 08:59:09 +02:00
Benjamin Otte
15be680540
stylecontext: Invalidate when setting classes/state/regions
...
... and nobody has called style_context_save().
2012-04-17 08:59:09 +02:00
Benjamin Otte
44d49c900d
stylecontext: Use _gtk_style_context_queue_invalidate() on self
2012-04-17 08:59:09 +02:00
Benjamin Otte
39ff874a11
stylecontext: Introduce _gtk_style_context_queue_invalidate()
...
This is for only queueing invalidations instead of doing a full
invalidation cycle.
2012-04-17 08:59:09 +02:00
Benjamin Otte
1a51ea3ea3
stylecontext: Keep track of children
2012-04-17 08:59:09 +02:00
Benjamin Otte
7f511f2b33
widget: Don't set widget path on style context
...
Instead, make the style context use the widget's path. Saves a bunch of
memory.
2012-04-17 08:59:09 +02:00
Benjamin Otte
e5ab48ac59
stylecontext: Notify widget directly of changes
...
This way, we don't need to g_signal_connect(), which saves a bunch of
memory and performance.
2012-04-17 08:59:08 +02:00
Benjamin Otte
1aa4a196dc
stylecontext: Add setter for widget
...
... and actually set the widget on the style context. Note that this
function does not take a reference on the widget, which is a very good
reason to keep it private.
2012-04-17 08:59:08 +02:00
Benjamin Otte
102d10016f
matcher: Add a superset matcher
...
This matcher always matches only on some relvant things and ignores the
rest. This allows you to match only on name and class, but ignore state
and parents/siblings for example.
2012-04-17 08:59:08 +02:00
Benjamin Otte
5f5bf27287
matcher: Add a matcher that matches anything
...
Lesson learned: Adwaita uses all possible selector types and all of
those for parents, too. But so far no siblings.
2012-04-17 08:59:08 +02:00
Benjamin Otte
d115441a57
reftests: Add a reftest for nth-child
...
Prime numbers are fun.
2012-04-17 08:59:08 +02:00
Benjamin Otte
cbe40f27e1
tests: Add a parsing test for nth-child()
...
Now that we support the an+b notation, make sure we really do.
Maybe my generating script went a bit overboard with the space
possibilities though...
2012-04-17 08:59:08 +02:00
Benjamin Otte
3bdde54aaf
selector: Rewrite position tracking
...
We now track the position as a (type,a,b) tuple where the numbers make
up the an + b formula from CSS3 nth-child.
Also, the get_sibling() and get_sibling_index() vfuncs were replaced by
a has_position() vfunc. This is mostly so that the matcher can always
return TRUE. And I need that for the everything matcher.
2012-04-17 08:59:08 +02:00
Benjamin Otte
8dbe8c8349
syleprovider: Add a vfunc to get the changes
...
This way we can check what changes are even interesting for our matcher.
2012-04-17 08:59:08 +02:00
Benjamin Otte
b0b6c8ad4b
selector: Rename selector class
...
It's a 'position' pseudoclass, not a 'region' pseudoclass.
2012-04-17 08:59:08 +02:00
Benjamin Otte
2d01f7786d
css: Add selector change types
...
This allows querying selectors for which changes would change their
"matchingness".
2012-04-17 08:59:07 +02:00
Benjamin Otte
53317aed55
matcher: Turn GtkCssMatcher into a union
...
That way, we can add more matchers as we need them.
2012-04-17 08:59:07 +02:00
Benjamin Otte
b368c5f10a
matcher: Use a vtable
...
Now we can do lots of fancy matchers, yay!
2012-04-17 08:59:07 +02:00
Benjamin Otte
a94b85d375
css: Make the style provider take a matcher as an input argument
2012-04-17 08:59:07 +02:00
Benjamin Otte
c0b7c3321d
css: Add GtkCssMatcher
...
This is so we can later do matching with other things than
GtkWidgetPath.
In particular, this is a requirement for getting rid of GtkWidgetPath.
2012-04-17 08:59:07 +02:00
Benjamin Otte
a2ded8b72a
styleprovider: Add a custom object for a list of style providers
...
This way, we don't have to do magic inside GtkStyleContext, but have a
real API.
As a cute bonus, this object implements GtkStyleProvider itself. So we
can just pretend there's only one provider.
2012-04-17 08:59:07 +02:00
Benjamin Otte
015e3a768f
stylecontext: Stop querying style providers for icon factories
...
Nobody implements this feature and I don't wanna maintain it. If it
turns out somebody is using it, we gotta invent something.
2012-04-17 08:59:07 +02:00
Benjamin Otte
a52336bedc
gdk: Add deprecation/availability macros for 3.6
2012-04-17 08:59:07 +02:00
Mario Blättermann
1de2e3ce00
[l10n] Updated German translation
2012-04-16 21:42:14 +02:00
Kristian Høgsberg
ea78bcb7c5
wayland: Prefer X11 backend over Wayland
...
https://bugzilla.gnome.org/show_bug.cgi?id=674102
2012-04-16 18:53:54 +02:00
Kalev Lember
234c7fcf28
application-window: Move desktop file handling code to separate function
...
https://bugzilla.gnome.org/show_bug.cgi?id=674118
2012-04-16 18:33:50 +03:00
Rob Bradford
ba81a3a14c
build: Add an enable flag to allow enabling Cairo GL backend
...
This change adds --enable-wayland-cairo-gl which turns on the define used in
the Wayland backend to determine whether to use EGL surfaces with Cairo GL or
whether to use the Cairo image backend with an SHM surface (the default).
Part of the fix for: https://bugzilla.gnome.org/show_bug.cgi?id=672361
2012-04-16 16:05:51 +01:00
Rob Bradford
71ca53993e
wayland: Use an ARGB buffer for the Cairo and SHM surface
2012-04-16 15:09:14 +01:00
Rob Bradford
cddfcf1418
wayland: Force an expose for the whole area when scrolling
2012-04-16 15:09:14 +01:00
Rob Bradford
cdf5c2af62
wayland: Add support for rendering into an SHM buffer with Cairo image backend
...
The first version of this change included a bug that meant that if you don't
compile for any other backend then it wouldn't search for cairo. Credit for
identifying the bug goes to darxus@chaosreigns.com .
Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=672361
2012-04-16 15:09:14 +01:00
Rob Bradford
6977ea0bd1
wayland: Move the buffer creation to the cairo surface creation
2012-04-16 14:12:51 +01:00
Rob Bradford
d9ca1a8636
wayland: Move the finalize function to allow a clear logical block of code
2012-04-16 14:12:51 +01:00