Philip Withnall 1ed67a9c44 gapplication: Expose zero-valued numbers in handle-local-options
This is a bit of a compromise. Since the option parsing in
`GApplication` is built on `GOptionContext`, there’s no way to
reliably indicate that a given option was passed by the user, other than
by its value changing. If the default value is zero, but the user
explicitly passed zero, nothing changes, so it’s not obvious that the
option was explicitly provided.

When just `GOptionContext` is being used, this is fine, as that’s
obvious what will happen from the way the API is built. With
`GApplication::handle-local-options`, though, the `GVariantDict`
provided by GLib to the callback claims to only contain the values of
the options provided by the user, and no defaults.

It’s not actually possible for GLib to do that reliably.

Previously, GLib was dropping all numeric values which were zero valued
(i.e. the defaults), as they *could* have been the defaults. It seems
like a slightly better behaviour to instead *not* drop those numeric
values, and err on the side of reporting some defaults as user-provided
(even if they weren’t) rather than dropping some user-provided values
which happen to be the defaults.

This adds a test for the case of parsing a double; the cases for
integers are analogous.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2329
2021-06-15 13:04:21 +01:00
..
2019-01-15 15:11:43 +00:00
2021-01-25 15:00:12 +01:00
2021-05-13 22:16:27 +01:00
2020-11-17 15:50:07 +00:00
2017-05-29 19:53:34 +02:00
2020-11-17 15:50:07 +00:00
2020-11-17 15:50:07 +00:00
2020-11-17 15:50:07 +00:00
2019-01-10 13:50:26 -05:00
2021-06-03 19:04:48 +02:00
2021-05-13 22:16:27 +01:00