Commit Graph

31982 Commits

Author SHA1 Message Date
Matthias Clasen
87121998a2 Merge branch 'test-locale-change' into 'master'
testutils: Run in UTF8 locale

See merge request GNOME/gtk!734
2019-04-13 00:28:08 +00:00
Matthias Clasen
9a1da43890 inspector: Fix editing in the property list
The type-to-search was interfering with using
entries in the list. Avoid that by watching
where the focus is.
2019-04-12 19:48:23 -04:00
Benjamin Otte
c78ba42051 testutils: Run in UTF8 locale
before, code was using the "C" locale, but that one uses ASCII. Instead,
run in the "C.utf8" locale.

Nobody expects code to not support UTF8 and no end user runs their
machine in an ASCII setup, so it makes no sense to default to that.
2019-04-13 01:40:10 +02:00
Christoph Reiter
b66e4cd64c gtkcomposetable: use g_size_checked_mul() for overflow checking
The check was added in !741, this replaces it with g_size_checked_mul()
2019-04-12 22:41:58 +02:00
Matthias Clasen
e81f033ece Merge branch 'validate-alloc-size' into 'master'
Check the size of the g_new arguments

See merge request GNOME/gtk!741
2019-04-12 19:11:30 +00:00
Matthias Clasen
a2db956492 inspector: Show readonly property values 2019-04-12 15:08:01 -04:00
Matthias Clasen
8d51038cb1 inspector: Cosmetics 2019-04-12 15:08:01 -04:00
Matthias Clasen
86c86e0860 inspector: Revamp attribute and action info
This also needs to be turned into single-line data.
2019-04-12 15:08:01 -04:00
Matthias Clasen
324f5472a2 Fix a crash
We had a signal handler with a wrong signature, causing
a crash when looking  at the GtkSettings properties in
the inspector.
2019-04-12 15:08:01 -04:00
Emmanuele Bassi
1b6252ebf0 Merge branch 'default-request-mode' into 'master'
Add default GtkLayoutManagerClass.get_request_mode()

See merge request GNOME/gtk!738
2019-04-12 17:59:04 +00:00
Emmanuele Bassi
b4c8ba4de7 Check the size of the g_new arguments
We're passing integers without validating their size, and newer GCC are
very cross about it, with warnings like:

    warning: argument 1 range [18446744071562067968, 18446744073709551615]
    exceeds maximum object size 9223372036854775807 [-Walloc-size-larger-than=]

We should check we're not overflowing the allocation size, by limiting
the range of values we can use.

First of all, we need to use `gsize` instead of a random `int`, since we're
allocating data.

Additionally, we need to check that the multiplication that computes the
size of the allocation doesn't overflow the maximum value of a `gsize`.
2019-04-12 18:58:34 +01:00
Benjamin Otte
f310609a66 builder: Parse GskTransform properties
In particular, this allows parsing the GtkFixed position properties.
2019-04-12 19:34:29 +02:00
Benjamin Otte
e1cd996617 selector: Inlcude : sign when reporting errors 2019-04-12 19:34:28 +02:00
Benjamin Otte
24cc721bc6 cssprovider: Mark whole @import statement on import error 2019-04-12 19:34:28 +02:00
Benjamin Otte
d41580adfc calc: Have better error location range 2019-04-12 19:34:28 +02:00
Benjamin Otte
3ab65b7da2 csspositionvalue: Redo the parser
The old one incorrectly rejected "center left" and "center right".
2019-04-12 19:34:28 +02:00
Benjamin Otte
79238b0d8f cssparser: Add error functions that take locations
... and use them to report better error locations for the warning when
blocks aren't terminated properly.
2019-04-12 19:34:28 +02:00
Benjamin Otte
2e0a56665a css: Move gtkcsssection.[ch] into gtk/css 2019-04-12 19:34:28 +02:00
Benjamin Otte
76826cfa2f cssparser: Pass in error locations explicitly
And for the quick function, use the start/end location of the current
token.
2019-04-12 19:34:28 +02:00
Benjamin Otte
37671d2bd0 cssprovider: Redo error emission
Emit all errors via the parser, don't try to have a custom error
handling machinery.

The only exception is the initial file load error - we need to do that
one directly, because there is no parser.
2019-04-12 19:34:28 +02:00
Benjamin Otte
04d24b7cd2 csssection: Make printing functions public 2019-04-12 19:34:28 +02:00
Benjamin Otte
085d34cbb0 cssprovider: Advance parser to start of declaration
This way, the block will reference the right location.
2019-04-12 19:34:28 +02:00
Benjamin Otte
46143492a2 cssprovider: Change section handling
Instead of building a full tree of sections that then nobody cares
about, just create sections as necessary for when we use it in the
inspector.
2019-04-12 19:34:28 +02:00
Benjamin Otte
a475d72d47 cssparser: Improve location APIs
1. Export multiple locations
2. Return the location instead of passing one in
2019-04-12 19:34:28 +02:00
Benjamin Otte
a8f712b09a cssection: Return locations, not numbers
Now that we have GtkCssLocation, actually use it.
2019-04-12 19:34:28 +02:00
Benjamin Otte
2fb202187c css: Remove GtkCssSectionType
It's unused.
2019-04-12 19:34:28 +02:00
Benjamin Otte
207c0b32b4 csssection: Redo constructors
Remove the unused one and rename the old one to new_from_parser().
2019-04-12 19:34:28 +02:00
Benjamin Otte
35f60dc918 csssection: Store a GtkCssLocation 2019-04-12 19:34:28 +02:00
Benjamin Otte
1cd9396154 css: Review error messages
... and move them from _gtk_css_parser_error() to the proper new error
message.
2019-04-12 19:34:28 +02:00
Benjamin Otte
de73ac980f css: Use gtk_css_parser_consume_any() for transition shorthand 2019-04-12 19:34:28 +02:00
Benjamin Otte
a31e5f7a8c cssshadow: Use gtk_css_parser_consume_any()
This way, the arguments can now really be speicified in any order.

A new testcase testing all the ordering possibilities has been added.
2019-04-12 19:34:28 +02:00
Benjamin Otte
e0a01ba174 css: Redo for new parser
This commit is still way too big, but I couldn't make it smaller.

It transitions the old CSS parser to the new parser. CSS parsing is now
tokenized, everything else is probably still buggy.
2019-04-12 19:34:28 +02:00
Benjamin Otte
f3db19d694 Resurrect the CSS parser from the tokenizer branch
So far that parser is unused.
2019-04-12 19:34:28 +02:00
Benjamin Otte
607502ef43 cssparser: Add gtk_css_parser_consume_url()
Another slight renaming and semantics change.
2019-04-12 19:34:28 +02:00
Benjamin Otte
acddc317da cssparser: Add gtk_css_parser_resolve_url()
Another slight change of semantics and naming for the new parser.
2019-04-12 19:34:28 +02:00
Benjamin Otte
7f99c1e588 cssparser: Split integer gettig into has/consume functions
We can't try to get an integer because ultimately integer getters
support the same shenanigans that numbers and percentages do with calc()
and whatnot.
2019-04-12 19:34:28 +02:00
Benjamin Otte
5f3e5a0406 cssparser: Add gtk_css_parser_try_delim()
For parsing single code point delimiters. Also port calc() to use this.
2019-04-12 19:34:28 +02:00
Benjamin Otte
23080d47b5 cssparser: Get rid of _gtk_css_parser_try_double()
Use gtk_css_parser_consume_number() everywhere instead.
2019-04-12 19:34:28 +02:00
Benjamin Otte
f0d2f99239 cssparser: Add gtk_css_parser_consume_string()
Well, just rename _gtk_css_parser_read_string() for the new semantics,
but this sounds cooler.
2019-04-12 19:34:28 +02:00
Benjamin Otte
e7b9ecc99a cssparser: Add gtk_css_parser_try_at_keyword() 2019-04-12 19:34:28 +02:00
Benjamin Otte
dce8c11b07 cssparser: Drop _gtk_css_parser_has_prefix()
Replace it with has_ident/has_function. The old function is a typical
string matching API, not a tokenizing one.
2019-04-12 19:34:28 +02:00
Benjamin Otte
7ccec19501 parser: Get rid of _gtk_css_parser_is_eof()
Use gtk_css_parser_has_token() instead.
2019-04-12 19:34:28 +02:00
Benjamin Otte
93b643c44d css: Make font-weight an integer
This conforms to what Pango does and to the CSS4 spec. And it makes the
parsing code easier. So let's go for it.
2019-04-12 19:34:28 +02:00
Benjamin Otte
21616f6e2e cssimagescaled: Use gtk_css_parser_consume_function()
As part of that, adapt the syntax from
  -gtk-scaled( [<image>, <int>?]# )
to
  -gtk-scaled( [<image> <int>?]# )

because the commas should be used to separate distinct elements.

Note that almost nobody specifies the scale anyway.
2019-04-12 19:34:28 +02:00
Benjamin Otte
8157004068 easevalue: Use gtk_css_parser_consume_function() 2019-04-12 19:34:28 +02:00
Benjamin Otte
8d69bda27a cssimagelinear: Use gtk_css_parser_consume_function() 2019-04-12 19:34:28 +02:00
Benjamin Otte
dbdb81f411 cssparser: Add gtk_css_parser_consume_ident()
And use it to fix the palette parser.
2019-04-12 19:34:28 +02:00
Benjamin Otte
28fbcf6abe shorthand: Use gtk_css_parser_try_ident() 2019-04-12 19:34:28 +02:00
Benjamin Otte
1fd339c46f cssimageradial: Use gtk_css_parser_consume_function() 2019-04-12 19:34:28 +02:00
Benjamin Otte
b830bdca37 cssimagefallback: Use gtk_css_parser_consume_function() 2019-04-12 19:34:28 +02:00