From 02f06813447cd3a4dfe3472e942bc94a21e5f6c3 Mon Sep 17 00:00:00 2001 From: Sebastian Keller Date: Wed, 16 Dec 2020 20:57:31 +0100 Subject: [PATCH] settings: Change gtk-cursor-aspect-ratio from float to double Float properties can not be read from keyfiles. This was causing changes to this property in settings.ini to be ignored. Fix this by changing it to a double. Technically this change could be considered an API break, but there are no users of this property as float yet and it is early enough to expect there to never be any. Also document this change in the 3 to 4 migration guide since in gtk 3 this setting will be kept a float. Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/3441 --- docs/reference/gtk/migrating-3to4.md | 5 +++++ gtk/gtksettings.c | 10 +++++----- gtk/gtkstylecontext.c | 8 ++++---- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/docs/reference/gtk/migrating-3to4.md b/docs/reference/gtk/migrating-3to4.md index 461be38197..a8ba76e557 100644 --- a/docs/reference/gtk/migrating-3to4.md +++ b/docs/reference/gtk/migrating-3to4.md @@ -1157,6 +1157,11 @@ shows a #GtkFileChooserNative dialog when clicked; once the file selection has completed, you can update the label of the #GtkButton with the selected file. +### Adapt to changed GtkSettings properties + +In GTK 3 the #GtkSettings:gtk-cursor-aspect-ratio property of #GtkSettings was +a float. In GTK 4 this has been changed to a double. + ## Changes to consider after the switch GTK 4 has a number of new features that you may want to take diff --git a/gtk/gtksettings.c b/gtk/gtksettings.c index 6345550a73..595e7a1810 100644 --- a/gtk/gtksettings.c +++ b/gtk/gtksettings.c @@ -386,11 +386,11 @@ gtk_settings_class_init (GtkSettingsClass *class) g_assert (result == PROP_SPLIT_CURSOR); result = settings_install_property_parser (class, - g_param_spec_float ("gtk-cursor-aspect-ratio", - P_("Cursor Aspect Ratio"), - P_("The aspect ratio of the text caret"), - 0.0, 1.0, 0.04, - GTK_PARAM_READWRITE)); + g_param_spec_double ("gtk-cursor-aspect-ratio", + P_("Cursor Aspect Ratio"), + P_("The aspect ratio of the text caret"), + 0.0, 1.0, 0.04, + GTK_PARAM_READWRITE)); g_assert (result == PROP_CURSOR_ASPECT_RATIO); result = settings_install_property_parser (class, diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 598c255722..71f4750252 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -969,7 +969,7 @@ draw_insertion_cursor (GtkStyleContext *context, double x, double y, double height, - float aspect_ratio, + double aspect_ratio, gboolean is_primary, PangoDirection direction, gboolean draw_arrow) @@ -1032,7 +1032,7 @@ draw_insertion_cursor (GtkStyleContext *context, static void get_insertion_cursor_bounds (double height, - float aspect_ratio, + double aspect_ratio, PangoDirection direction, gboolean draw_arrow, graphene_rect_t *bounds) @@ -1073,7 +1073,7 @@ static void snapshot_insertion_cursor (GtkSnapshot *snapshot, GtkStyleContext *context, double height, - float aspect_ratio, + double aspect_ratio, gboolean is_primary, PangoDirection direction, gboolean draw_arrow) @@ -1136,7 +1136,7 @@ gtk_snapshot_render_insertion_cursor (GtkSnapshot *snapshot, { GtkStyleContextPrivate *priv = gtk_style_context_get_instance_private (context); gboolean split_cursor; - float aspect_ratio; + double aspect_ratio; PangoRectangle strong_pos, weak_pos; PangoRectangle *cursor1, *cursor2; GdkSeat *seat;