[libadwaita/wip/exalm/properties: 2/5] Ensure property flags make sense




commit b934ad736ea38bf9776ff868b69682d73b39849f
Author: Alexander Mikhaylenko <alexm gnome org>
Date:   Mon Jun 20 23:56:05 2022 +0400

    Ensure property flags make sense
    
    - Add G_PARAM_STATIC_STRINGS everywhere.
    - Add missing G_PARAM_EXPLICIT_NOTIFY
    - Remove G_PARAM_EXPLICIT_NOTIFY from read-only and construct-only props
    - Consistently order them to ease grepping

 demo/pages/animations/adw-demo-page-animations.c |  4 +--
 demo/pages/leaflet/adw-demo-page-leaflet.c       |  2 +-
 src/adw-action-row.c                             |  6 ++--
 src/adw-animation-target.c                       |  6 ++--
 src/adw-animation.c                              |  8 +++---
 src/adw-application-window.c                     |  2 +-
 src/adw-application.c                            |  2 +-
 src/adw-avatar.c                                 | 10 +++----
 src/adw-bin.c                                    |  2 +-
 src/adw-button-content.c                         |  6 ++--
 src/adw-carousel-indicator-dots.c                |  2 +-
 src/adw-carousel-indicator-lines.c               |  2 +-
 src/adw-carousel.c                               | 18 ++++++------
 src/adw-clamp-layout.c                           |  4 +--
 src/adw-clamp-scrollable.c                       |  6 ++--
 src/adw-clamp.c                                  |  6 ++--
 src/adw-combo-row.c                              | 14 ++++-----
 src/adw-entry-row.c                              |  2 +-
 src/adw-enum-list-model.c                        |  8 +++---
 src/adw-expander-row.c                           |  6 ++--
 src/adw-fading-label.c                           |  4 +--
 src/adw-flap.c                                   | 32 ++++++++++-----------
 src/adw-header-bar.c                             | 10 +++----
 src/adw-indicator-bin.c                          |  6 ++--
 src/adw-leaflet.c                                | 32 ++++++++++-----------
 src/adw-preferences-group.c                      |  6 ++--
 src/adw-preferences-page.c                       |  2 +-
 src/adw-preferences-row.c                        |  4 +--
 src/adw-preferences-window.c                     |  6 ++--
 src/adw-settings.c                               |  6 ++--
 src/adw-shadow-helper.c                          |  2 +-
 src/adw-split-button.c                           | 14 ++++-----
 src/adw-spring-animation.c                       | 16 +++++------
 src/adw-squeezer.c                               | 26 ++++++++---------
 src/adw-status-page.c                            | 10 +++----
 src/adw-style-manager.c                          | 10 +++----
 src/adw-swipe-tracker.c                          | 10 +++----
 src/adw-tab-bar.c                                | 16 +++++------
 src/adw-tab-box.c                                |  9 +++---
 src/adw-tab-view.c                               | 36 ++++++++++++------------
 src/adw-tab.c                                    | 10 +++----
 src/adw-timed-animation.c                        | 14 ++++-----
 src/adw-toast-overlay.c                          |  2 +-
 src/adw-toast-widget.c                           |  2 +-
 src/adw-toast.c                                  | 14 ++++-----
 src/adw-view-stack.c                             | 26 ++++++++---------
 src/adw-view-switcher-bar.c                      |  4 +--
 src/adw-view-switcher-button.c                   |  6 ++--
 src/adw-view-switcher-title.c                    | 10 +++----
 src/adw-view-switcher.c                          |  4 +--
 src/adw-window-title.c                           |  4 +--
 src/adw-window.c                                 |  2 +-
 52 files changed, 236 insertions(+), 235 deletions(-)
---
diff --git a/demo/pages/animations/adw-demo-page-animations.c 
b/demo/pages/animations/adw-demo-page-animations.c
index 0ab807ea..575a38fd 100644
--- a/demo/pages/animations/adw-demo-page-animations.c
+++ b/demo/pages/animations/adw-demo-page-animations.c
@@ -310,14 +310,14 @@ adw_demo_page_animations_class_init (AdwDemoPageAnimationsClass *klass)
                          "Timed animation",
                          "Timed animation",
                          ADW_TYPE_ANIMATION,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
   props[PROP_SPRING_ANIMATION] =
     g_param_spec_object ("spring-animation",
                          "Spring animation",
                          "Spring animation",
                          ADW_TYPE_ANIMATION,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/demo/pages/leaflet/adw-demo-page-leaflet.c b/demo/pages/leaflet/adw-demo-page-leaflet.c
index 56cd07bd..a43268a9 100644
--- a/demo/pages/leaflet/adw-demo-page-leaflet.c
+++ b/demo/pages/leaflet/adw-demo-page-leaflet.c
@@ -97,7 +97,7 @@ adw_demo_page_leaflet_class_init (AdwDemoPageLeafletClass *klass)
                        "Transition type",
                        ADW_TYPE_LEAFLET_TRANSITION_TYPE,
                        ADW_LEAFLET_TRANSITION_TYPE_OVER,
-                       G_PARAM_READWRITE);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-action-row.c b/src/adw-action-row.c
index 2e09f1c7..afce4aba 100644
--- a/src/adw-action-row.c
+++ b/src/adw-action-row.c
@@ -261,7 +261,7 @@ adw_action_row_class_init (AdwActionRowClass *klass)
                            "Activatable widget",
                            "The widget to be activated when the row is activated",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwActionRow:subtitle: (attributes org.gtk.Property.get=adw_action_row_get_subtitle 
org.gtk.Property.set=adw_action_row_set_subtitle)
@@ -292,7 +292,7 @@ adw_action_row_class_init (AdwActionRowClass *klass)
                       "The desired number of title lines",
                       0, G_MAXINT,
                       0,
-                      G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwActionRow:subtitle-lines: (attributes org.gtk.Property.get=adw_action_row_get_subtitle_lines 
org.gtk.Property.set=adw_action_row_set_subtitle_lines)
@@ -310,7 +310,7 @@ adw_action_row_class_init (AdwActionRowClass *klass)
                       "The desired number of subtitle lines",
                       0, G_MAXINT,
                       0,
-                      G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-animation-target.c b/src/adw-animation-target.c
index 310c5baf..1b4a704e 100644
--- a/src/adw-animation-target.c
+++ b/src/adw-animation-target.c
@@ -409,7 +409,7 @@ adw_property_animation_target_class_init (AdwPropertyAnimationTargetClass *klass
                          "Object",
                          "The object whose property will be animated",
                          G_TYPE_OBJECT,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwPropertyAnimationTarget:property-name: (attributes 
org.gtk.Property.get=adw_property_animation_target_get_property_name)
@@ -426,7 +426,7 @@ adw_property_animation_target_class_init (AdwPropertyAnimationTargetClass *klass
                          "Property name",
                          "The name of the property to be animated",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwPropertyAnimationTarget:pspec: (attributes 
org.gtk.Property.get=adw_property_animation_target_get_pspec)
@@ -443,7 +443,7 @@ adw_property_animation_target_class_init (AdwPropertyAnimationTargetClass *klass
                         "Param spec",
                         "The param spec of the property to be animated",
                         G_TYPE_PARAM,
-                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class,
                                      LAST_PROPERTY_PROP,
diff --git a/src/adw-animation.c b/src/adw-animation.c
index 1104671f..eadaf36c 100644
--- a/src/adw-animation.c
+++ b/src/adw-animation.c
@@ -355,7 +355,7 @@ adw_animation_class_init (AdwAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwAnimation:widget: (attributes org.gtk.Property.get=adw_animation_get_widget)
@@ -376,7 +376,7 @@ adw_animation_class_init (AdwAnimationClass *klass)
                          "Widget",
                          "The animation widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwAnimation:target: (attributes org.gtk.Property.get=adw_animation_get_target)
@@ -390,7 +390,7 @@ adw_animation_class_init (AdwAnimationClass *klass)
                          "Target",
                          "The target to animate",
                          ADW_TYPE_ANIMATION_TARGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwAnimation:state: (attributes org.gtk.Property.get=adw_animation_get_state)
@@ -408,7 +408,7 @@ adw_animation_class_init (AdwAnimationClass *klass)
                        "The animation state",
                        ADW_TYPE_ANIMATION_STATE,
                        ADW_ANIMATION_IDLE,
-                       G_PARAM_READABLE);
+                       G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-application-window.c b/src/adw-application-window.c
index d10a88f2..fbedf11e 100644
--- a/src/adw-application-window.c
+++ b/src/adw-application-window.c
@@ -133,7 +133,7 @@ adw_application_window_class_init (AdwApplicationWindowClass *klass)
                          "Content",
                          "The content widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);}
 
diff --git a/src/adw-application.c b/src/adw-application.c
index 217ca926..60c43d4f 100644
--- a/src/adw-application.c
+++ b/src/adw-application.c
@@ -239,7 +239,7 @@ adw_application_class_init (AdwApplicationClass *klass)
                          "Style Manager",
                          "The default style manager",
                          ADW_TYPE_STYLE_MANAGER,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-avatar.c b/src/adw-avatar.c
index ee75900d..c01b6414 100644
--- a/src/adw-avatar.c
+++ b/src/adw-avatar.c
@@ -334,7 +334,7 @@ adw_avatar_class_init (AdwAvatarClass *klass)
                          "Icon name",
                          "The name of an icon to use as a fallback",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwAvatar:text: (attributes org.gtk.Property.get=adw_avatar_get_text 
org.gtk.Property.set=adw_avatar_set_text)
@@ -351,7 +351,7 @@ adw_avatar_class_init (AdwAvatarClass *klass)
                          "Text",
                          "The text used to generate the color and the initials",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwAvatar:show-initials: (attributes org.gtk.Property.get=adw_avatar_get_show_initials 
org.gtk.Property.set=adw_avatar_set_show_initials)
@@ -367,7 +367,7 @@ adw_avatar_class_init (AdwAvatarClass *klass)
                           "Show initials",
                           "Whether initials are used instead of an icon on the fallback avatar",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwAvatar:custom-image: (attributes org.gtk.Property.get=adw_avatar_get_custom_image 
org.gtk.Property.set=adw_avatar_set_custom_image)
@@ -381,7 +381,7 @@ adw_avatar_class_init (AdwAvatarClass *klass)
                          "Custom image",
                          "A custom image to use instead of initials or icon",
                          GDK_TYPE_PAINTABLE,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwAvatar:size: (attributes org.gtk.Property.get=adw_avatar_get_size 
org.gtk.Property.set=adw_avatar_set_size)
@@ -395,7 +395,7 @@ adw_avatar_class_init (AdwAvatarClass *klass)
                       "Size",
                       "The size of the avatar",
                       -1, INT_MAX, -1,
-                      G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                      G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
 
diff --git a/src/adw-bin.c b/src/adw-bin.c
index 038db1f4..d19eba77 100644
--- a/src/adw-bin.c
+++ b/src/adw-bin.c
@@ -120,7 +120,7 @@ adw_bin_class_init (AdwBinClass *klass)
                            "Child",
                            "The child widget",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-button-content.c b/src/adw-button-content.c
index 07c94bf4..6e209279 100644
--- a/src/adw-button-content.c
+++ b/src/adw-button-content.c
@@ -225,7 +225,7 @@ adw_button_content_class_init (AdwButtonContentClass *klass)
                            "Icon name",
                            "The name of the displayed icon",
                            "",
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwButtonContent:label: (attributes org.gtk.Property.get=adw_button_content_get_label 
org.gtk.Property.set=adw_button_content_set_label)
@@ -239,7 +239,7 @@ adw_button_content_class_init (AdwButtonContentClass *klass)
                            "Label",
                            "The displayed label",
                            "",
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwButtonContent:use-underline: (attributes org.gtk.Property.get=adw_button_content_get_use_underline 
org.gtk.Property.set=adw_button_content_set_use_underline)
@@ -257,7 +257,7 @@ adw_button_content_class_init (AdwButtonContentClass *klass)
                           "Use underline",
                           "Whether an underline in the text indicates a mnemonic",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-carousel-indicator-dots.c b/src/adw-carousel-indicator-dots.c
index b7be0c1f..9a18b93e 100644
--- a/src/adw-carousel-indicator-dots.c
+++ b/src/adw-carousel-indicator-dots.c
@@ -358,7 +358,7 @@ adw_carousel_indicator_dots_class_init (AdwCarouselIndicatorDotsClass *klass)
                          "Carousel",
                          "The displayed carousel",
                          ADW_TYPE_CAROUSEL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_override_property (object_class,
                                     PROP_ORIENTATION,
diff --git a/src/adw-carousel-indicator-lines.c b/src/adw-carousel-indicator-lines.c
index c6574652..dfa53c01 100644
--- a/src/adw-carousel-indicator-lines.c
+++ b/src/adw-carousel-indicator-lines.c
@@ -343,7 +343,7 @@ adw_carousel_indicator_lines_class_init (AdwCarouselIndicatorLinesClass *klass)
                          "Carousel",
                          "The displayed carousel",
                          ADW_TYPE_CAROUSEL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_override_property (object_class,
                                     PROP_ORIENTATION,
diff --git a/src/adw-carousel.c b/src/adw-carousel.c
index 6b115f03..08260581 100644
--- a/src/adw-carousel.c
+++ b/src/adw-carousel.c
@@ -890,7 +890,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                        0,
                        G_MAXUINT,
                        0,
-                       G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwCarousel:position: (attributes org.gtk.Property.get=adw_carousel_get_position)
@@ -908,7 +908,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                          0,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwCarousel:interactive: (attributes org.gtk.Property.get=adw_carousel_get_interactive 
org.gtk.Property.set=adw_carousel_set_interactive)
@@ -925,7 +925,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                           "Interactive",
                           "Whether the widget can be swiped",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwCarousel:spacing: (attributes org.gtk.Property.get=adw_carousel_get_spacing 
org.gtk.Property.set=adw_carousel_set_spacing)
@@ -941,7 +941,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                        0,
                        G_MAXUINT,
                        0,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwCarousel:scroll-params: (attributes org.gtk.Property.get=adw_carousel_get_scroll_params 
org.gtk.Property.set=adw_carousel_set_scroll_params)
@@ -961,7 +961,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                         "Scroll Parameters",
                         "Scroll animation spring parameters",
                         ADW_TYPE_SPRING_PARAMS,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwCarousel:allow-mouse-drag: (attributes org.gtk.Property.get=adw_carousel_get_allow_mouse_drag 
org.gtk.Property.set=adw_carousel_set_allow_mouse_drag)
@@ -977,7 +977,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                           "Allow mouse drag",
                           "Whether to allow dragging with mouse pointer",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwCarousel:allow-scroll-wheel: (attributes org.gtk.Property.get=adw_carousel_get_allow_scroll_wheel 
org.gtk.Property.set=adw_carousel_set_allow_scroll_wheel)
@@ -993,7 +993,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                           "Allow scroll wheel",
                           "Whether the widget will respond to scroll wheel events",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwCarousel:allow-long-swipes: (attributes org.gtk.Property.get=adw_carousel_get_allow_long_swipes 
org.gtk.Property.set=adw_carousel_set_allow_long_swipes)
@@ -1009,7 +1009,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                           "Allow long swipes",
                           "Whether to allow swiping for more than one page at a time",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwCarousel:reveal-duration:
@@ -1025,7 +1025,7 @@ adw_carousel_class_init (AdwCarouselClass *klass)
                        0,
                        G_MAXUINT,
                        0,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_override_property (object_class,
                                     PROP_ORIENTATION,
diff --git a/src/adw-clamp-layout.c b/src/adw-clamp-layout.c
index efc9d3d1..eae30c67 100644
--- a/src/adw-clamp-layout.c
+++ b/src/adw-clamp-layout.c
@@ -357,7 +357,7 @@ adw_clamp_layout_class_init (AdwClampLayoutClass *klass)
                         "Maximum size",
                         "The maximum size allocated to the child",
                         0, G_MAXINT, 600,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwClampLayout:tightening-threshold: (attributes 
org.gtk.Property.get=adw_clamp_layout_get_tightening_threshold 
org.gtk.Property.set=adw_clamp_layout_set_tightening_threshold)
@@ -384,7 +384,7 @@ adw_clamp_layout_class_init (AdwClampLayoutClass *klass)
                         "Tightening threshold",
                         "The size above which the children are clamped",
                         0, G_MAXINT, 400,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-clamp-scrollable.c b/src/adw-clamp-scrollable.c
index beb521e9..3b0c52ca 100644
--- a/src/adw-clamp-scrollable.c
+++ b/src/adw-clamp-scrollable.c
@@ -265,7 +265,7 @@ adw_clamp_scrollable_class_init (AdwClampScrollableClass *klass)
                            "Child",
                            "The child widget",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwClampScrollable:maximum-size: (attributes org.gtk.Property.get=adw_clamp_scrollable_get_maximum_size 
org.gtk.Property.set=adw_clamp_scrollable_set_maximum_size)
@@ -281,7 +281,7 @@ adw_clamp_scrollable_class_init (AdwClampScrollableClass *klass)
                         "Maximum size",
                         "The maximum size allocated to the child",
                         0, G_MAXINT, 600,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwClampScrollable:tightening-threshold: (attributes 
org.gtk.Property.get=adw_clamp_scrollable_get_tightening_threshold 
org.gtk.Property.set=adw_clamp_scrollable_set_tightening_threshold)
@@ -308,7 +308,7 @@ adw_clamp_scrollable_class_init (AdwClampScrollableClass *klass)
                         "Tightening threshold",
                         "The size from which the clamp will tighten its grip on the child",
                         0, G_MAXINT, 400,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-clamp.c b/src/adw-clamp.c
index 58eabe59..790e51fe 100644
--- a/src/adw-clamp.c
+++ b/src/adw-clamp.c
@@ -181,7 +181,7 @@ adw_clamp_class_init (AdwClampClass *klass)
                            "Child",
                            "The child widget",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwClamp:maximum-size: (attributes org.gtk.Property.get=adw_clamp_get_maximum_size 
org.gtk.Property.set=adw_clamp_set_maximum_size)
@@ -197,7 +197,7 @@ adw_clamp_class_init (AdwClampClass *klass)
                         "Maximum size",
                         "The maximum size allocated to the child",
                         0, G_MAXINT, 600,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwClamp:tightening-threshold: (attributes org.gtk.Property.get=adw_clamp_get_tightening_threshold 
org.gtk.Property.set=adw_clamp_set_tightening_threshold)
@@ -224,7 +224,7 @@ adw_clamp_class_init (AdwClampClass *klass)
                         "Tightening threshold",
                         "The size above which the child is clamped",
                         0, G_MAXINT, 400,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-combo-row.c b/src/adw-combo-row.c
index 2d04b724..87d213e8 100644
--- a/src/adw-combo-row.c
+++ b/src/adw-combo-row.c
@@ -427,7 +427,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
                          "Model",
                          "Model for the displayed items",
                          G_TYPE_LIST_MODEL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwComboRow:selected: (attributes org.gtk.Property.get=adw_combo_row_get_selected 
org.gtk.Property.set=adw_combo_row_set_selected)
@@ -444,7 +444,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
                        "Selected",
                        "Position of the selected item",
                        0, G_MAXUINT, GTK_INVALID_LIST_POSITION,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwComboRow:selected-item: (attributes org.gtk.Property.get=adw_combo_row_get_selected_item)
@@ -458,7 +458,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
                          "Selected Item",
                          "The selected item",
                          G_TYPE_OBJECT,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwComboRow:factory: (attributes org.gtk.Property.get=adw_combo_row_get_factory 
org.gtk.Property.set=adw_combo_row_set_factory)
@@ -475,7 +475,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
                          "Factory",
                          "Factory for populating list items",
                          GTK_TYPE_LIST_ITEM_FACTORY,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwComboRow:list-factory: (attributes org.gtk.Property.get=adw_combo_row_get_list_factory 
org.gtk.Property.set=adw_combo_row_set_list_factory)
@@ -491,7 +491,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
                          "List Factory",
                          "Factory for populating list items",
                          GTK_TYPE_LIST_ITEM_FACTORY,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwComboRow:expression: (type GtkExpression) (attributes 
org.gtk.Property.get=adw_combo_row_get_expression org.gtk.Property.set=adw_combo_row_set_expression)
@@ -509,7 +509,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
     gtk_param_spec_expression ("expression",
                                "Expression",
                                "Expression to determine strings to search for",
-                               G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                               G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwComboRow:use-subtitle: (attributes org.gtk.Property.get=adw_combo_row_get_use_subtitle 
org.gtk.Property.set=adw_combo_row_set_use_subtitle)
@@ -531,7 +531,7 @@ adw_combo_row_class_init (AdwComboRowClass *klass)
                           "Use subtitle",
                           "Whether to use the current value as the subtitle",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-entry-row.c b/src/adw-entry-row.c
index 7ec4f74d..652d2df2 100644
--- a/src/adw-entry-row.c
+++ b/src/adw-entry-row.c
@@ -427,7 +427,7 @@ adw_entry_row_class_init (AdwEntryRowClass *klass)
                           "Show Apply Button",
                           "Whether to show the apply button",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, PROP_LAST_PROP, props);
 
diff --git a/src/adw-enum-list-model.c b/src/adw-enum-list-model.c
index 1b57b328..613d318e 100644
--- a/src/adw-enum-list-model.c
+++ b/src/adw-enum-list-model.c
@@ -114,7 +114,7 @@ adw_enum_list_item_class_init (AdwEnumListItemClass *klass)
                       "Value",
                       "The enum value",
                       G_MININT, G_MAXINT, 0,
-                      G_PARAM_READABLE);
+                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwEnumListItem:name: (attributes org.gtk.Property.get=adw_enum_list_item_get_name)
@@ -128,7 +128,7 @@ adw_enum_list_item_class_init (AdwEnumListItemClass *klass)
                          "Name",
                          "The enum value name",
                          NULL,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwEnumListItem:nick: (attributes org.gtk.Property.get=adw_enum_list_item_get_nick)
@@ -142,7 +142,7 @@ adw_enum_list_item_class_init (AdwEnumListItemClass *klass)
                          "Nick",
                          "The enum value nick",
                          NULL,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_VALUE_PROP, value_props);
 }
@@ -296,7 +296,7 @@ adw_enum_list_model_class_init (AdwEnumListModelClass *klass)
                         "Enum type",
                         "The type of the enum represented by the model",
                         G_TYPE_ENUM,
-                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-expander-row.c b/src/adw-expander-row.c
index 18cc8398..7c6461b6 100644
--- a/src/adw-expander-row.c
+++ b/src/adw-expander-row.c
@@ -216,7 +216,7 @@ adw_expander_row_class_init (AdwExpanderRowClass *klass)
                           "Expanded",
                           "Whether the row is expanded",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwExpanderRow:enable-expansion: (attributes org.gtk.Property.get=adw_expander_row_get_enable_expansion 
org.gtk.Property.set=adw_expander_row_set_enable_expansion)
@@ -230,7 +230,7 @@ adw_expander_row_class_init (AdwExpanderRowClass *klass)
                           "Enable expansion",
                           "Whether expansion is enabled",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwExpanderRow:show-enable-switch: (attributes 
org.gtk.Property.get=adw_expander_row_get_show_enable_switch 
org.gtk.Property.set=adw_expander_row_set_show_enable_switch)
@@ -244,7 +244,7 @@ adw_expander_row_class_init (AdwExpanderRowClass *klass)
                           "Show enable switch",
                           "Whether the switch enabling the expansion is visible",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-fading-label.c b/src/adw-fading-label.c
index 91982904..bb2b95c0 100644
--- a/src/adw-fading-label.c
+++ b/src/adw-fading-label.c
@@ -262,14 +262,14 @@ adw_fading_label_class_init (AdwFadingLabelClass *klass)
                          "Label",
                          "Label",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   props[PROP_ALIGN] =
     g_param_spec_float ("align",
                         "Align",
                         "Align",
                         0.0, 1.0, 0.0,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-flap.c b/src/adw-flap.c
index 0f768994..60071541 100644
--- a/src/adw-flap.c
+++ b/src/adw-flap.c
@@ -1278,7 +1278,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                          "Content",
                          "The content widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:flap: (attributes org.gtk.Property.get=adw_flap_get_flap org.gtk.Property.set=adw_flap_set_flap)
@@ -1294,7 +1294,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                          "Flap",
                          "The flap widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:separator: (attributes org.gtk.Property.get=adw_flap_get_separator 
org.gtk.Property.set=adw_flap_set_separator)
@@ -1312,7 +1312,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                          "Separator",
                          "The separator widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:flap-position: (attributes org.gtk.Property.get=adw_flap_get_flap_position 
org.gtk.Property.set=adw_flap_set_flap_position)
@@ -1330,7 +1330,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                        "The flap position",
                        GTK_TYPE_PACK_TYPE,
                        GTK_PACK_START,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:reveal-flap: (attributes org.gtk.Property.get=adw_flap_get_reveal_flap 
org.gtk.Property.set=adw_flap_set_reveal_flap)
@@ -1344,7 +1344,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Reveal Flap",
                           "Whether the flap is revealed",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:reveal-params: (attributes org.gtk.Property.get=adw_flap_get_reveal_params 
org.gtk.Property.set=adw_flap_set_reveal_params)
@@ -1364,7 +1364,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                         "Reveal Parameters",
                         "The reveal animation spring parameters",
                         ADW_TYPE_SPRING_PARAMS,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:reveal-progress: (attributes org.gtk.Property.get=adw_flap_get_reveal_progress)
@@ -1382,7 +1382,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Reveal Progress",
                           "The current reveal transition progress",
                           0.0, 1.0, 1.0,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwFlap:fold-policy: (attributes org.gtk.Property.get=adw_flap_get_fold_policy)
@@ -1397,7 +1397,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                        "The fold policy for the flap",
                        ADW_TYPE_FLAP_FOLD_POLICY,
                        ADW_FLAP_FOLD_POLICY_AUTO,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:fold-threshold-policy: (attributes org.gtk.Property.get=adw_flap_get_fold_threshold_policy 
org.gtk.Property.set=adw_flap_set_fold_threshold_policy)
@@ -1419,7 +1419,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                        "Determines when the flap will fold",
                        ADW_TYPE_FOLD_THRESHOLD_POLICY,
                        ADW_FOLD_THRESHOLD_POLICY_MINIMUM,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:fold-duration: (attributes org.gtk.Property.get=adw_flap_get_fold_duration 
org.gtk.Property.set=adw_flap_set_fold_duration)
@@ -1434,7 +1434,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                        "The fold transition animation duration, in milliseconds",
                        0, G_MAXINT,
                        250,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:folded: (attributes org.gtk.Property.get=adw_flap_get_folded)
@@ -1450,7 +1450,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Folded",
                           "Whether the flap is currently folded",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwFlap:locked: (attributes org.gtk.Property.get=adw_flap_get_locked 
org.gtk.Property.set=adw_flap_set_locked)
@@ -1468,7 +1468,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Locked",
                           "Whether the flap is locked",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:transition-type: (attributes org.gtk.Property.get=adw_flap_get_transition_type 
org.gtk.Property.set=adw_flap_set_transition_type)
@@ -1488,7 +1488,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                        "The type of animation used for reveal and fold transitions",
                        ADW_TYPE_FLAP_TRANSITION_TYPE,
                        ADW_FLAP_TRANSITION_TYPE_OVER,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:modal: (attributes org.gtk.Property.get=adw_flap_get_modal 
org.gtk.Property.set=adw_flap_set_modal)
@@ -1506,7 +1506,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Modal",
                           "Whether the flap is modal",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:swipe-to-open: (attributes org.gtk.Property.get=adw_flap_get_swipe_to_open 
org.gtk.Property.set=adw_flap_set_swipe_to_open)
@@ -1523,7 +1523,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Swipe to Open",
                           "Whether the flap can be opened with a swipe gesture",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwFlap:swipe-to-close: (attributes org.gtk.Property.get=adw_flap_get_swipe_to_close 
org.gtk.Property.set=adw_flap_set_swipe_to_close)
@@ -1540,7 +1540,7 @@ adw_flap_class_init (AdwFlapClass *klass)
                           "Swipe to Close",
                           "Whether the flap can be closed with a swipe gesture",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-header-bar.c b/src/adw-header-bar.c
index b50514df..2f9c632c 100644
--- a/src/adw-header-bar.c
+++ b/src/adw-header-bar.c
@@ -410,7 +410,7 @@ adw_header_bar_class_init (AdwHeaderBarClass *class)
                          "Title Widget",
                          "The title widget to display",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE|G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwHeaderBar:show-start-title-buttons: (attributes 
org.gtk.Property.get=adw_header_bar_get_show_start_title_buttons 
org.gtk.Property.set=adw_header_bar_set_show_start_title_buttons)
@@ -431,7 +431,7 @@ adw_header_bar_class_init (AdwHeaderBarClass *class)
                           "Show start title buttons",
                           "Whether to show title buttons at the start of the header bar",
                           TRUE,
-                          G_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwHeaderBar:show-end-title-buttons: (attributes 
org.gtk.Property.get=adw_header_bar_get_show_end_title_buttons 
org.gtk.Property.set=adw_header_bar_set_show_end_title_buttons)
@@ -452,7 +452,7 @@ adw_header_bar_class_init (AdwHeaderBarClass *class)
                           "Show end title buttons",
                           "Whether to show title buttons at the end of the header bar",
                           TRUE,
-                          G_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwHeaderBar:decoration-layout: (attributes org.gtk.Property.get=adw_header_bar_get_decoration_layout 
org.gtk.Property.set=adw_header_bar_set_decoration_layout)
@@ -477,7 +477,7 @@ adw_header_bar_class_init (AdwHeaderBarClass *class)
                          "Decoration Layout",
                          "The layout for window decorations",
                          NULL,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwHeaderBar:centering-policy: (attributes org.gtk.Property.get=adw_header_bar_get_centering_policy 
org.gtk.Property.set=adw_header_bar_set_centering_policy)
@@ -492,7 +492,7 @@ adw_header_bar_class_init (AdwHeaderBarClass *class)
                        "The policy for aligning the center widget",
                        ADW_TYPE_CENTERING_POLICY,
                        ADW_CENTERING_POLICY_LOOSE,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-indicator-bin.c b/src/adw-indicator-bin.c
index a255d5a6..8981e90b 100644
--- a/src/adw-indicator-bin.c
+++ b/src/adw-indicator-bin.c
@@ -305,7 +305,7 @@ adw_indicator_bin_class_init (AdwIndicatorBinClass *klass)
                            "Child",
                            "The child widget",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwIndicatorBin:needs-attention:
@@ -319,7 +319,7 @@ adw_indicator_bin_class_init (AdwIndicatorBinClass *klass)
                           "Needs Attention",
                           "Whether the indicator requires attention of the user",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwIndicatorBin:badge:
@@ -333,7 +333,7 @@ adw_indicator_bin_class_init (AdwIndicatorBinClass *klass)
                          "Badge",
                          "Additional information for the user",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-leaflet.c b/src/adw-leaflet.c
index 78f32644..bc80166d 100644
--- a/src/adw-leaflet.c
+++ b/src/adw-leaflet.c
@@ -286,7 +286,7 @@ adw_leaflet_page_class_init (AdwLeafletPageClass *klass)
                          "Child",
                          "The child of the page",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwLeafletPage:name: (attributes org.gtk.Property.get=adw_leaflet_page_get_name 
org.gtk.Property.set=adw_leaflet_page_set_name)
@@ -300,7 +300,7 @@ adw_leaflet_page_class_init (AdwLeafletPageClass *klass)
                          "Name",
                          "The name of the child page",
                          NULL,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeafletPage:navigatable: (attributes org.gtk.Property.get=adw_leaflet_page_get_navigatable 
org.gtk.Property.set=adw_leaflet_page_set_navigatable)
@@ -320,7 +320,7 @@ adw_leaflet_page_class_init (AdwLeafletPageClass *klass)
                           "Navigatable",
                           "Whether the child can be navigated to",
                           TRUE,
-                          G_PARAM_READWRITE);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PAGE_PROP, page_props);
 }
@@ -2204,7 +2204,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                           "Folded",
                           "Whether the leaflet is folded",
                           FALSE,
-                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwLeaflet:fold-threshold-policy: (attributes 
org.gtk.Property.get=adw_leaflet_get_fold_threshold_policy 
org.gtk.Property.set=adw_leaflet_set_fold_threshold_policy)
@@ -2226,7 +2226,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                        "Determines when the leaflet will fold",
                        ADW_TYPE_FOLD_THRESHOLD_POLICY,
                        ADW_FOLD_THRESHOLD_POLICY_MINIMUM,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:homogeneous: (attributes org.gtk.Property.get=adw_leaflet_get_homogeneous 
org.gtk.Property.set=adw_leaflet_set_homogeneous)
@@ -2243,7 +2243,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                           "Homogeneous",
                           "Whether the leaflet allocates the same size for all children when folded",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:visible-child: (attributes org.gtk.Property.get=adw_leaflet_get_visible_child 
org.gtk.Property.set=adw_leaflet_set_visible_child)
@@ -2262,7 +2262,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                          "Visible child",
                          "The widget currently visible when the leaflet is folded",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:visible-child-name: (attributes org.gtk.Property.get=adw_leaflet_get_visible_child_name 
org.gtk.Property.set=adw_leaflet_set_visible_child_name)
@@ -2278,7 +2278,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                          "Name of visible child",
                          "The name of the widget currently visible when the leaflet is folded",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:transition-type: (attributes org.gtk.Property.get=adw_leaflet_get_transition_type 
org.gtk.Property.set=adw_leaflet_set_transition_type)
@@ -2296,7 +2296,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                        "Transition type",
                        "The type of animation used for transitions between modes and children",
                        ADW_TYPE_LEAFLET_TRANSITION_TYPE, ADW_LEAFLET_TRANSITION_TYPE_OVER,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:mode-transition-duration: (attributes 
org.gtk.Property.get=adw_leaflet_get_mode_transition_duration 
org.gtk.Property.set=adw_leaflet_set_mode_transition_duration)
@@ -2310,7 +2310,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                        "Mode transition duration",
                        "The mode transition animation duration, in milliseconds",
                        0, G_MAXUINT, 250,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:child-transition-params: (attributes 
org.gtk.Property.get=adw_leaflet_get_child_transition_params 
org.gtk.Property.set=adw_leaflet_set_child_transition_params)
@@ -2330,7 +2330,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                         "Child transition parameters",
                         "The child transition spring parameters",
                         ADW_TYPE_SPRING_PARAMS,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:child-transition-running: (attributes 
org.gtk.Property.get=adw_leaflet_get_child_transition_running)
@@ -2344,7 +2344,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                             "Child transition running",
                             "Whether a child transition is currently running",
                             FALSE,
-                            G_PARAM_READABLE);
+                            G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwLeaflet:can-navigate-back: (attributes org.gtk.Property.get=adw_leaflet_get_can_navigate_back 
org.gtk.Property.set=adw_leaflet_set_can_navigate_back)
@@ -2374,7 +2374,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                             "Can navigate back",
                             "Whether gestures and shortcuts for navigating backward are enabled",
                             FALSE,
-                            G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:can-navigate-forward: (attributes org.gtk.Property.get=adw_leaflet_get_can_navigate_forward 
org.gtk.Property.set=adw_leaflet_set_can_navigate_forward)
@@ -2404,7 +2404,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                             "Can navigate forward",
                             "Whether gestures and shortcuts for navigating forward are enabled",
                             FALSE,
-                            G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:can-unfold: (attributes org.gtk.Property.get=adw_leaflet_get_can_unfold 
org.gtk.Property.set=adw_leaflet_set_can_unfold)
@@ -2418,7 +2418,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                             "Can unfold",
                             "Whether or not the leaflet can unfold",
                             TRUE,
-                            G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwLeaflet:pages: (attributes org.gtk.Property.get=adw_leaflet_get_pages)
@@ -2436,7 +2436,7 @@ adw_leaflet_class_init (AdwLeafletClass *klass)
                          "Pages",
                          "A selection model with the leaflet's pages",
                          GTK_TYPE_SELECTION_MODEL,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-preferences-group.c b/src/adw-preferences-group.c
index f273e885..0649671d 100644
--- a/src/adw-preferences-group.c
+++ b/src/adw-preferences-group.c
@@ -247,7 +247,7 @@ adw_preferences_group_class_init (AdwPreferencesGroupClass *klass)
                          "Description",
                          "The description for this group of preferences",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwPreferencesGroup:title: (attributes org.gtk.Property.get=adw_preferences_group_get_title 
org.gtk.Property.set=adw_preferences_group_set_title)
@@ -261,7 +261,7 @@ adw_preferences_group_class_init (AdwPreferencesGroupClass *klass)
                          "Title",
                          "The title for this group of preferences",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
   /**
    * AdwPreferencesGroup:header-suffix: (attributes 
org.gtk.Property.get=adw_preferences_group_get_header_suffix 
org.gtk.Property.set=adw_preferences_group_set_header_suffix)
    *
@@ -276,7 +276,7 @@ adw_preferences_group_class_init (AdwPreferencesGroupClass *klass)
                          "Header Suffix",
                          "The suffix for this group's header",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-preferences-page.c b/src/adw-preferences-page.c
index 06655cdd..357c3dd6 100644
--- a/src/adw-preferences-page.c
+++ b/src/adw-preferences-page.c
@@ -212,7 +212,7 @@ adw_preferences_page_class_init (AdwPreferencesPageClass *klass)
                           "Use underline",
                           " Whether an embedded underline in the title label indicates a mnemonic",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-preferences-row.c b/src/adw-preferences-row.c
index e1d705b1..20fc4299 100644
--- a/src/adw-preferences-row.c
+++ b/src/adw-preferences-row.c
@@ -143,7 +143,7 @@ adw_preferences_row_class_init (AdwPreferencesRowClass *klass)
                           "Use underline",
                           "Whether an embedded underline in the title indicates a mnemonic",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwPreferencesRow:title-selectable: (attributes 
org.gtk.Property.get=adw_preferences_row_get_title_selectable 
org.gtk.Property.set=adw_preferences_row_set_title_selectable)
@@ -177,7 +177,7 @@ adw_preferences_row_class_init (AdwPreferencesRowClass *klass)
                           "Use markup",
                           "Whether to use Pango markup for the title label",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-preferences-window.c b/src/adw-preferences-window.c
index a1afa6c4..53003f8d 100644
--- a/src/adw-preferences-window.c
+++ b/src/adw-preferences-window.c
@@ -561,7 +561,7 @@ adw_preferences_window_class_init (AdwPreferencesWindowClass *klass)
                            "Visible page",
                            "The currently visible page",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStack:visible-page-name: (attributes 
org.gtk.Property.get=adw_preferences_window_get_visible_page_name 
org.gtk.Property.set=adw_preferences_window_set_visible_page_name)
@@ -577,7 +577,7 @@ adw_preferences_window_class_init (AdwPreferencesWindowClass *klass)
                            "Name of visible page",
                            "The name of the currently visible page",
                            NULL,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwPreferencesWindow:search-enabled: (attributes 
org.gtk.Property.get=adw_preferences_window_get_search_enabled 
org.gtk.Property.set=adw_preferences_window_set_search_enabled)
@@ -616,7 +616,7 @@ adw_preferences_window_class_init (AdwPreferencesWindowClass *klass)
                             "Can navigate back",
                             "Whether gestures and shortcuts for closing subpages are enabled",
                             FALSE,
-                            G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-settings.c b/src/adw-settings.c
index c15582c6..1b3351b5 100644
--- a/src/adw-settings.c
+++ b/src/adw-settings.c
@@ -624,7 +624,7 @@ adw_settings_class_init (AdwSettingsClass *klass)
                           "System supports color schemes",
                           "Whether the system supports color schemes",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   props[PROP_COLOR_SCHEME] =
     g_param_spec_enum ("color-scheme",
@@ -632,14 +632,14 @@ adw_settings_class_init (AdwSettingsClass *klass)
                        "Color Scheme",
                        ADW_TYPE_SYSTEM_COLOR_SCHEME,
                        ADW_SYSTEM_COLOR_SCHEME_DEFAULT,
-                       G_PARAM_READABLE);
+                       G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   props[PROP_HIGH_CONTRAST] =
     g_param_spec_boolean ("high-contrast",
                           "High Contrast",
                           "High Contrast",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-shadow-helper.c b/src/adw-shadow-helper.c
index a41860c7..d63f0cd5 100644
--- a/src/adw-shadow-helper.c
+++ b/src/adw-shadow-helper.c
@@ -136,7 +136,7 @@ adw_shadow_helper_class_init (AdwShadowHelperClass *klass)
                          "Widget",
                          "The widget the shadow will be drawn for",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-split-button.c b/src/adw-split-button.c
index 0cfdd47b..5beb3a5f 100644
--- a/src/adw-split-button.c
+++ b/src/adw-split-button.c
@@ -289,7 +289,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                          "Label",
                          "The label for the button",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSplitButton:use-underline: (attributes org.gtk.Property.get=adw_split_button_get_use_underline 
org.gtk.Property.set=adw_split_button_set_use_underline)
@@ -305,7 +305,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                           "Use underline",
                           "Whether an underline in the text indicates a mnemonic",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSplitButton:icon-name: (attributes org.gtk.Property.get=adw_split_button_get_icon_name 
org.gtk.Property.set=adw_split_button_set_icon_name)
@@ -322,7 +322,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                          "Icon Name",
                          "The name of the icon used to automatically populate the button",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSplitButton:child: (attributes org.gtk.Property.get=adw_split_button_get_child 
org.gtk.Property.set=adw_split_button_set_child)
@@ -339,7 +339,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                          "Child",
                          "The child widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSplitButton:menu-model: (attributes org.gtk.Property.get=adw_split_button_get_menu_model 
org.gtk.Property.set=adw_split_button_set_menu_model)
@@ -362,7 +362,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                          "Menu model",
                          "The model from which the popup is made",
                          G_TYPE_MENU_MODEL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSplitButton:popover: (attributes org.gtk.Property.get=adw_split_button_get_popover 
org.gtk.Property.set=adw_split_button_set_popover)
@@ -381,7 +381,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                          "Popover",
                          "The popover that will be popped up when the dropdown is clicked",
                          GTK_TYPE_POPOVER,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSplitButton:direction: (attributes org.gtk.Property.get=adw_split_button_get_direction 
org.gtk.Property.set=adw_split_button_set_direction)
@@ -403,7 +403,7 @@ adw_split_button_class_init (AdwSplitButtonClass *klass)
                        "The direction in which the popup will be popped up",
                        GTK_TYPE_ARROW_TYPE,
                        GTK_ARROW_DOWN,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-spring-animation.c b/src/adw-spring-animation.c
index fead6895..21fab440 100644
--- a/src/adw-spring-animation.c
+++ b/src/adw-spring-animation.c
@@ -407,7 +407,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSpringAnimation:value-to: (attributes org.gtk.Property.get=adw_spring_animation_get_value_to 
org.gtk.Property.set=adw_spring_animation_set_value_to)
@@ -426,7 +426,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSpringAnimation:spring-params: (attributes 
org.gtk.Property.get=adw_spring_animation_get_spring_params 
org.gtk.Property.set=adw_spring_animation_set_spring_params)
@@ -440,7 +440,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                         "Spring parameters",
                         "Physical parameters describing the spring",
                         ADW_TYPE_SPRING_PARAMS,
-                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                        G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSpringAnimation:initial-velocity: (attributes 
org.gtk.Property.get=adw_spring_animation_get_initial_velocity 
org.gtk.Property.set=adw_spring_animation_set_initial_velocity)
@@ -458,7 +458,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSpringAnimation:epsilon: (attributes org.gtk.Property.get=adw_spring_animation_get_epsilon 
org.gtk.Property.set=adw_spring_animation_set_epsilon)
@@ -485,7 +485,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                          0,
                          G_MAXDOUBLE,
                          0.001,
-                         G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSpringAnimation:clamp: (attributes org.gtk.Property.get=adw_spring_animation_get_clamp 
org.gtk.Property.set=adw_spring_animation_set_clamp)
@@ -505,7 +505,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                           "Clamp",
                           "Whether the animation should be clamped",
                           FALSE,
-                          G_PARAM_READWRITE);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSpringAnimation:estimated-duration: (attributes 
org.gtk.Property.get=adw_spring_animation_get_estimated_duration)
@@ -523,7 +523,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                        0,
                        ADW_DURATION_INFINITE,
                        0,
-                       G_PARAM_READABLE);
+                       G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwSpringAnimation:velocity: (attributes org.gtk.Property.get=adw_spring_animation_get_velocity)
@@ -539,7 +539,7 @@ adw_spring_animation_class_init (AdwSpringAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-squeezer.c b/src/adw-squeezer.c
index 15c75fbe..a51a740e 100644
--- a/src/adw-squeezer.c
+++ b/src/adw-squeezer.c
@@ -228,7 +228,7 @@ adw_squeezer_page_class_init (AdwSqueezerPageClass *klass)
                          "Child",
                          "The child of the page",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwSqueezerPage:enabled: (attributes org.gtk.Property.get=adw_squeezer_page_get_enabled 
org.gtk.Property.set=adw_squeezer_page_set_enabled)
@@ -251,7 +251,7 @@ adw_squeezer_page_class_init (AdwSqueezerPageClass *klass)
                           "Enabled",
                           "Whether the child is enabled",
                           TRUE,
-                          G_PARAM_READWRITE);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PAGE_PROP, page_props);
 }
@@ -1068,7 +1068,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                           "Homogeneous",
                           "Whether all children have the same size for the opposite orientation",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:switch-threshold-policy: (attributes 
org.gtk.Property.get=adw_squeezer_get_switch_threshold_policy 
org.gtk.Property.set=adw_squeezer_set_switch_threshold_policy)
@@ -1091,7 +1091,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                        "Determines when the leaflet will fold",
                        ADW_TYPE_FOLD_THRESHOLD_POLICY,
                        ADW_FOLD_THRESHOLD_POLICY_NATURAL,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:visible-child: (attributes org.gtk.Property.get=adw_squeezer_get_visible_child)
@@ -1105,7 +1105,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                          "Visible child",
                          "The currently visible child",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwSqueezer:allow-none: (attributes org.gtk.Property.get=adw_squeezer_get_allow_none 
org.gtk.Property.set=adw_squeezer_set_allow_none)
@@ -1123,7 +1123,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                           "Allow none",
                           "Whether to allow squeezing beyond the last child's minimum size",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:transition-duration: (attributes org.gtk.Property.get=adw_squeezer_get_transition_duration 
org.gtk.Property.set=adw_squeezer_set_transition_duration)
@@ -1137,7 +1137,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                        "Transition duration",
                        "The animation duration, in milliseconds",
                        0, G_MAXUINT, 200,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:transition-type: (attributes org.gtk.Property.get=adw_squeezer_get_transition_type 
org.gtk.Property.set=adw_squeezer_set_transition_type)
@@ -1152,7 +1152,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                        "The type of animation used for transitions between children",
                        ADW_TYPE_SQUEEZER_TRANSITION_TYPE,
                        ADW_SQUEEZER_TRANSITION_TYPE_NONE,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:transition-running: (attributes org.gtk.Property.get=adw_squeezer_get_transition_running)
@@ -1170,7 +1170,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                           "Transition running",
                           "Whether a transition is currently running",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwSqueezer:interpolate-size: (attributes org.gtk.Property.get=adw_squeezer_get_interpolate_size 
org.gtk.Property.set=adw_squeezer_set_interpolate_size)
@@ -1189,7 +1189,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                           "Interpolate size",
                           "Whether the squeezer interpolates its size when changing the visible child",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:xalign: (attributes org.gtk.Property.get=adw_squeezer_get_xalign 
org.gtk.Property.set=adw_squeezer_set_xalign)
@@ -1210,7 +1210,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                         "The horizontal alignment, from 0 (start) to 1 (end)",
                         0.0, 1.0,
                         0.5,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:yalign: (attributes org.gtk.Property.get=adw_squeezer_get_yalign 
org.gtk.Property.set=adw_squeezer_set_yalign)
@@ -1231,7 +1231,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                         "The vertical alignment, from 0 (top) to 1 (bottom)",
                         0.0, 1.0,
                         0.5,
-                        G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                        G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSqueezer:pages: (attributes org.gtk.Property.get=adw_squeezer_get_pages)
@@ -1248,7 +1248,7 @@ adw_squeezer_class_init (AdwSqueezerClass *klass)
                          "Pages",
                          "A selection model with the squeezer's pages",
                          GTK_TYPE_SELECTION_MODEL,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-status-page.c b/src/adw-status-page.c
index a4951e87..17565e02 100644
--- a/src/adw-status-page.c
+++ b/src/adw-status-page.c
@@ -203,7 +203,7 @@ adw_status_page_class_init (AdwStatusPageClass *klass)
                          "Icon name",
                          "The name of the icon to be used",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwStatusPage:paintable: (attributes org.gtk.Property.get=adw_status_page_get_paintable 
org.gtk.Property.set=adw_status_page_set_paintable)
@@ -219,7 +219,7 @@ adw_status_page_class_init (AdwStatusPageClass *klass)
                          "Paintable",
                          "The GdkPaintable to be used",
                          GDK_TYPE_PAINTABLE,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwStatusPage:title: (attributes org.gtk.Property.get=adw_status_page_get_title 
org.gtk.Property.set=adw_status_page_set_title)
@@ -233,7 +233,7 @@ adw_status_page_class_init (AdwStatusPageClass *klass)
                          "Title",
                          "The title to be displayed below the icon",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwStatusPage:description: (attributes org.gtk.Property.get=adw_status_page_get_description 
org.gtk.Property.set=adw_status_page_set_description)
@@ -247,7 +247,7 @@ adw_status_page_class_init (AdwStatusPageClass *klass)
                          "Description",
                          "The description to be displayed below the title",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwStatusPage:child: (attributes org.gtk.Property.get=adw_status_page_get_child 
org.gtk.Property.set=adw_status_page_set_child)
@@ -261,7 +261,7 @@ adw_status_page_class_init (AdwStatusPageClass *klass)
                          "Child",
                          "The child widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-style-manager.c b/src/adw-style-manager.c
index 662fba72..d9fffe40 100644
--- a/src/adw-style-manager.c
+++ b/src/adw-style-manager.c
@@ -395,7 +395,7 @@ adw_style_manager_class_init (AdwStyleManagerClass *klass)
                          "Display",
                          "The display the style manager is associated with",
                          GDK_TYPE_DISPLAY,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwStyleManager:color-scheme: (attributes org.gtk.Property.get=adw_style_manager_get_color_scheme 
org.gtk.Property.set=adw_style_manager_set_color_scheme)
@@ -440,7 +440,7 @@ adw_style_manager_class_init (AdwStyleManagerClass *klass)
                        "The current color scheme",
                        ADW_TYPE_COLOR_SCHEME,
                        ADW_COLOR_SCHEME_DEFAULT,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwStyleManager:system-supports-color-schemes: (attributes 
org.gtk.Property.get=adw_style_manager_get_system_supports_color_schemes)
@@ -460,7 +460,7 @@ adw_style_manager_class_init (AdwStyleManagerClass *klass)
                           "System supports color schemes",
                           "Whether the system supports color schemes",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwStyleManager:dark: (attributes org.gtk.Property.get=adw_style_manager_get_dark)
@@ -477,7 +477,7 @@ adw_style_manager_class_init (AdwStyleManagerClass *klass)
                           "Dark",
                           "Whether the application is using dark appearance",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwStyleManager:high-contrast: (attributes org.gtk.Property.get=adw_style_manager_get_high_contrast)
@@ -493,7 +493,7 @@ adw_style_manager_class_init (AdwStyleManagerClass *klass)
                           "High Contrast",
                           "Whether the application is using high contrast appearance",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-swipe-tracker.c b/src/adw-swipe-tracker.c
index e4ddce8b..c2f5d0c0 100644
--- a/src/adw-swipe-tracker.c
+++ b/src/adw-swipe-tracker.c
@@ -1023,7 +1023,7 @@ adw_swipe_tracker_class_init (AdwSwipeTrackerClass *klass)
                          "Swipeable",
                          "The widget the swipe tracker is attached to",
                          ADW_TYPE_SWIPEABLE,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwSwipeTracker:enabled: (attributes org.gtk.Property.get=adw_swipe_tracker_get_enabled 
org.gtk.Property.set=adw_swipe_tracker_set_enabled)
@@ -1040,7 +1040,7 @@ adw_swipe_tracker_class_init (AdwSwipeTrackerClass *klass)
                           "Enabled",
                           "Whether the swipe tracker is enabled",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSwipeTracker:reversed: (attributes org.gtk.Property.get=adw_swipe_tracker_get_reversed 
org.gtk.Property.set=adw_swipe_tracker_set_reversed)
@@ -1057,7 +1057,7 @@ adw_swipe_tracker_class_init (AdwSwipeTrackerClass *klass)
                           "Reversed",
                           "Whether to reverse the swipe direction",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSwipeTracker:allow-mouse-drag: (attributes 
org.gtk.Property.get=adw_swipe_tracker_get_allow_mouse_drag 
org.gtk.Property.set=adw_swipe_tracker_set_allow_mouse_drag)
@@ -1071,7 +1071,7 @@ adw_swipe_tracker_class_init (AdwSwipeTrackerClass *klass)
                           "Allow mouse drag",
                           "Whether to allow dragging with mouse pointer",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwSwipeTracker:allow-long-swipes: (attributes 
org.gtk.Property.get=adw_swipe_tracker_get_allow_long_swipes 
org.gtk.Property.set=adw_swipe_tracker_set_allow_long_swipes)
@@ -1088,7 +1088,7 @@ adw_swipe_tracker_class_init (AdwSwipeTrackerClass *klass)
                           "Allow long swipes",
                           "Whether to allow swiping for more than one snap point at a time",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_override_property (object_class,
                                     PROP_ORIENTATION,
diff --git a/src/adw-tab-bar.c b/src/adw-tab-bar.c
index b914a9f2..ab76cf45 100644
--- a/src/adw-tab-bar.c
+++ b/src/adw-tab-bar.c
@@ -415,7 +415,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                          "View",
                          "The tab view the tab bar controls.",
                          ADW_TYPE_TAB_VIEW,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabBar:start-action-widget: (attributes org.gtk.Property.get=adw_tab_bar_get_start_action_widget 
org.gtk.Property.set=adw_tab_bar_set_start_action_widget)
@@ -429,7 +429,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                          "Start action widget",
                          "The widget shown before the tabs",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabBar:end-action-widget: (attributes org.gtk.Property.get=adw_tab_bar_get_end_action_widget 
org.gtk.Property.set=adw_tab_bar_set_end_action_widget)
@@ -443,7 +443,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                          "End action widget",
                          "The widget shown after the tabs",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabBar:autohide: (attributes org.gtk.Property.get=adw_tab_bar_get_autohide 
org.gtk.Property.set=adw_tab_bar_set_autohide)
@@ -462,7 +462,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                           "Autohide",
                           "Whether the tabs automatically hide",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabBar:tabs-revealed: (attributes org.gtk.Property.get=adw_tab_bar_get_tabs_revealed)
@@ -478,7 +478,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                           "Tabs revealed",
                           "Whether the tabs are currently revealed",
                           FALSE,
-                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabBar:expand-tabs: (attributes org.gtk.Property.get=adw_tab_bar_get_expand_tabs 
org.gtk.Property.set=adw_tab_bar_set_expand_tabs)
@@ -495,7 +495,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                           "Expand tabs",
                           "Whether tabs expand to full width",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabBar:inverted: (attributes org.gtk.Property.get=adw_tab_bar_get_inverted 
org.gtk.Property.set=adw_tab_bar_set_inverted)
@@ -512,7 +512,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                           "Inverted",
                           "Whether tabs use inverted layout",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabBar:is-overflowing: (attributes org.gtk.Property.get=adw_tab_bar_get_is_overflowing)
@@ -528,7 +528,7 @@ adw_tab_bar_class_init (AdwTabBarClass *klass)
                           "Is overflowing",
                           "Whether the tab bar is overflowing",
                           FALSE,
-                          G_PARAM_READABLE);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-tab-box.c b/src/adw-tab-box.c
index 48286a7c..0de72872 100644
--- a/src/adw-tab-box.c
+++ b/src/adw-tab-box.c
@@ -3588,28 +3588,28 @@ adw_tab_box_class_init (AdwTabBoxClass *klass)
                           "Pinned",
                           "Pinned",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   props[PROP_TAB_BAR] =
     g_param_spec_object ("tab-bar",
                          "Tab Bar",
                          "Tab Bar",
                          ADW_TYPE_TAB_BAR,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   props[PROP_VIEW] =
     g_param_spec_object ("view",
                          "View",
                          "View",
                          ADW_TYPE_TAB_VIEW,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   props[PROP_RESIZE_FROZEN] =
     g_param_spec_boolean ("resize-frozen",
                           "Resize Frozen",
                           "Resize Frozen",
                           FALSE,
-                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
@@ -3977,3 +3977,4 @@ adw_tab_box_set_inverted (AdwTabBox *self,
     adw_tab_set_inverted (info->tab, inverted);
   }
 }
+
diff --git a/src/adw-tab-view.c b/src/adw-tab-view.c
index 26b64436..3dc00db5 100644
--- a/src/adw-tab-view.c
+++ b/src/adw-tab-view.c
@@ -390,7 +390,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                          "Child",
                          "The child of the page",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabPage:parent: (attributes org.gtk.Property.get=adw_tab_page_get_parent)
@@ -406,7 +406,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                          "Parent",
                          "The parent page of the page",
                          ADW_TYPE_TAB_PAGE,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:selected: (attributes org.gtk.Property.get=adw_tab_page_get_selected)
@@ -420,7 +420,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                           "Selected",
                           "Whether the page is selected",
                           FALSE,
-                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabPage:pinned: (attributes org.gtk.Property.get=adw_tab_page_get_pinned)
@@ -436,7 +436,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                           "Pinned",
                           "Whether the page is pinned",
                           FALSE,
-                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabPage:title: (attributes org.gtk.Property.get=adw_tab_page_get_title 
org.gtk.Property.set=adw_tab_page_set_title)
@@ -453,7 +453,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                          "Title",
                          "The title of the page",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:tooltip: (attributes org.gtk.Property.get=adw_tab_page_get_tooltip 
org.gtk.Property.set=adw_tab_page_set_tooltip)
@@ -472,7 +472,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                          "Tooltip",
                          "The tooltip of the page",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:icon: (attributes org.gtk.Property.get=adw_tab_page_get_icon 
org.gtk.Property.set=adw_tab_page_set_icon)
@@ -491,7 +491,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                          "Icon",
                          "The icon of the page",
                          G_TYPE_ICON,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:loading: (attributes org.gtk.Property.get=adw_tab_page_get_loading 
org.gtk.Property.set=adw_tab_page_set_loading)
@@ -510,7 +510,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                           "Loading",
                           "Whether the page is loading",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:indicator-icon: (attributes org.gtk.Property.get=adw_tab_page_get_indicator_icon 
org.gtk.Property.set=adw_tab_page_set_indicator_icon)
@@ -535,7 +535,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                          "Indicator icon",
                          "An indicator icon for the page",
                          G_TYPE_ICON,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:indicator-activatable: (attributes 
org.gtk.Property.get=adw_tab_page_get_indicator_activatable 
org.gtk.Property.set=adw_tab_page_set_indicator_activatable)
@@ -554,7 +554,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                           "Indicator activatable",
                           "Whether the indicator icon is activatable",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabPage:needs-attention: (attributes org.gtk.Property.get=adw_tab_page_get_needs_attention 
org.gtk.Property.set=adw_tab_page_set_needs_attention)
@@ -572,7 +572,7 @@ adw_tab_page_class_init (AdwTabPageClass *klass)
                           "Needs attention",
                           "Whether the page needs attention",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PAGE_PROP, page_props);
 }
@@ -1420,7 +1420,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                       "Number of pages",
                       "The number of pages in the tab view",
                       0, G_MAXINT, 0,
-                      G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabView:n-pinned-pages: (attributes org.gtk.Property.get=adw_tab_view_get_n_pinned_pages)
@@ -1436,7 +1436,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                       "Number of pinned pages",
                       "The number of pinned pages in the tab view",
                       0, G_MAXINT, 0,
-                      G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                      G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabView:is-transferring-page: (attributes org.gtk.Property.get=adw_tab_view_get_is_transferring_page)
@@ -1456,7 +1456,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                           "Is transferring page",
                           "Whether a page is being transferred",
                           FALSE,
-                          G_PARAM_READABLE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwTabView:selected-page: (attributes org.gtk.Property.get=adw_tab_view_get_selected_page 
org.gtk.Property.set=adw_tab_view_set_selected_page)
@@ -1470,7 +1470,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                          "Selected page",
                          "The currently selected page",
                          ADW_TYPE_TAB_PAGE,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabView:default-icon: (attributes org.gtk.Property.get=adw_tab_view_get_default_icon 
org.gtk.Property.set=adw_tab_view_set_default_icon)
@@ -1494,7 +1494,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                          "Default icon",
                          "Default page icon",
                          G_TYPE_ICON,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabView:menu-model: (attributes org.gtk.Property.get=adw_tab_view_get_menu_model 
org.gtk.Property.set=adw_tab_view_set_menu_model)
@@ -1512,7 +1512,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                          "Menu model",
                          "Tab context menu model",
                          G_TYPE_MENU_MODEL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTabView:pages: (attributes org.gtk.Property.get=adw_tab_view_get_pages)
@@ -1530,7 +1530,7 @@ adw_tab_view_class_init (AdwTabViewClass *klass)
                          "Pages",
                          "A selection model with the tab view's pages",
                          GTK_TYPE_SELECTION_MODEL,
-                         G_PARAM_READABLE);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-tab.c b/src/adw-tab.c
index 34a93067..603b1397 100644
--- a/src/adw-tab.c
+++ b/src/adw-tab.c
@@ -785,35 +785,35 @@ adw_tab_class_init (AdwTabClass *klass)
                          "View",
                          "View",
                          ADW_TYPE_TAB_VIEW,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   props[PROP_PINNED] =
     g_param_spec_boolean ("pinned",
                           "Pinned",
                           "Pinned",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   props[PROP_DRAGGING] =
     g_param_spec_boolean ("dragging",
                           "Dragging",
                           "Dragging",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   props[PROP_PAGE] =
     g_param_spec_object ("page",
                          "Page",
                          "Page",
                          ADW_TYPE_TAB_PAGE,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   props[PROP_INVERTED] =
     g_param_spec_boolean ("inverted",
                           "Inverted",
                           "Inverted",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   signals[SIGNAL_EXTRA_DRAG_DROP] =
     g_signal_new ("extra-drag-drop",
diff --git a/src/adw-timed-animation.c b/src/adw-timed-animation.c
index 3998b835..2f90ab8f 100644
--- a/src/adw-timed-animation.c
+++ b/src/adw-timed-animation.c
@@ -230,7 +230,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTimedAnimation:value-to: (attributes org.gtk.Property.get=adw_timed_animation_get_value_to 
org.gtk.Property.set=adw_timed_animation_set_value_to)
@@ -252,7 +252,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                          -G_MAXDOUBLE,
                          G_MAXDOUBLE,
                          0,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTimedAnimation:duration: (attributes org.gtk.Property.get=adw_timed_animation_get_duration 
org.gtk.Property.set=adw_timed_animation_set_duration)
@@ -273,7 +273,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                        0,
                        ADW_DURATION_INFINITE,
                        0,
-                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTimedAnimation:easing: (attributes org.gtk.Property.get=adw_timed_animation_get_easing 
org.gtk.Property.set=adw_timed_animation_set_easing)
@@ -292,7 +292,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                        "Easing function used in the animation",
                        ADW_TYPE_EASING,
                        ADW_EASE_OUT_CUBIC,
-                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTimedAnimation:repeat-count: (attributes org.gtk.Property.get=adw_timed_animation_get_repeat_count 
org.gtk.Property.set=adw_timed_animation_set_repeat_count)
@@ -310,7 +310,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                        0,
                        G_MAXUINT,
                        1,
-                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                       G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTimedAnimation:reverse: (attributes org.gtk.Property.get=adw_timed_animation_get_reverse 
org.gtk.Property.set=adw_timed_animation_set_reverse)
@@ -324,7 +324,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                           "Reverse",
                           "Whether the animation plays backwards",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwTimedAnimation:alternate: (attributes org.gtk.Property.get=adw_timed_animation_get_alternate 
org.gtk.Property.set=adw_timed_animation_set_alternate)
@@ -338,7 +338,7 @@ adw_timed_animation_class_init (AdwTimedAnimationClass *klass)
                           "Alternate",
                           "Whether the animation changes direction on every iteration",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+                          G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | 
G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }
diff --git a/src/adw-toast-overlay.c b/src/adw-toast-overlay.c
index fcf11553..9c3348d9 100644
--- a/src/adw-toast-overlay.c
+++ b/src/adw-toast-overlay.c
@@ -456,7 +456,7 @@ adw_toast_overlay_class_init (AdwToastOverlayClass *klass)
                            "Child",
                            "The child widget",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-toast-widget.c b/src/adw-toast-widget.c
index 0b47724a..775b5e3e 100644
--- a/src/adw-toast-widget.c
+++ b/src/adw-toast-widget.c
@@ -231,7 +231,7 @@ adw_toast_widget_class_init (AdwToastWidgetClass *klass)
                            "Toast",
                            "The displayed toast",
                            ADW_TYPE_TOAST,
-                           G_PARAM_READWRITE);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-toast.c b/src/adw-toast.c
index 9855b5d9..c8c2f5f0 100644
--- a/src/adw-toast.c
+++ b/src/adw-toast.c
@@ -310,7 +310,7 @@ adw_toast_class_init (AdwToastClass *klass)
                          "Title",
                          "The title of the toast",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwToast:button-label: (attributes org.gtk.Property.get=adw_toast_get_button_label 
org.gtk.Property.set=adw_toast_set_button_label)
@@ -330,7 +330,7 @@ adw_toast_class_init (AdwToastClass *klass)
                          "Button Label",
                          "The label to show on the button",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwToast:action-name: (attributes org.gtk.Property.get=adw_toast_get_action_name 
org.gtk.Property.set=adw_toast_set_action_name)
@@ -348,7 +348,7 @@ adw_toast_class_init (AdwToastClass *klass)
                          "Action Name",
                          "The name of the associated action",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwToast:action-target: (attributes org.gtk.Property.get=adw_toast_get_action_target_value 
org.gtk.Property.set=adw_toast_set_action_target_value)
@@ -365,7 +365,7 @@ adw_toast_class_init (AdwToastClass *klass)
                           "The parameter for action invocations",
                           G_VARIANT_TYPE_ANY,
                           NULL,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwToast:priority: (attributes org.gtk.Property.get=adw_toast_get_priority 
org.gtk.Property.set=adw_toast_set_priority)
@@ -388,7 +388,7 @@ adw_toast_class_init (AdwToastClass *klass)
                        "The priority of the toast",
                        ADW_TYPE_TOAST_PRIORITY,
                        ADW_TOAST_PRIORITY_NORMAL,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwToast:timeout: (attributes org.gtk.Property.get=adw_toast_get_timeout 
org.gtk.Property.set=adw_toast_set_timeout)
@@ -408,7 +408,7 @@ adw_toast_class_init (AdwToastClass *klass)
                        "Timeout",
                        "The timeout of the toast, in seconds",
                        0, G_MAXUINT, 5,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwToast:custom-title: (attributes org.gtk.Property.get=adw_toast_get_custom_title 
org.gtk.Property.set=adw_toast_set_custom_title)
@@ -427,7 +427,7 @@ adw_toast_class_init (AdwToastClass *klass)
                          "Custom Title",
                          "The custom title widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-view-stack.c b/src/adw-view-stack.c
index 92a61166..c4eafaf9 100644
--- a/src/adw-view-stack.c
+++ b/src/adw-view-stack.c
@@ -264,7 +264,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                          "Child",
                          "The child of the page",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY);
+                         G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
 
   /**
    * AdwViewStackPage:name: (attributes org.gtk.Property.get=adw_view_stack_page_get_name 
org.gtk.Property.set=adw_view_stack_page_set_name)
@@ -278,7 +278,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                          "Name",
                          "The name of the child page",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStackPage:title: (attributes org.gtk.Property.get=adw_view_stack_page_get_title 
org.gtk.Property.set=adw_view_stack_page_set_title)
@@ -292,7 +292,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                          "Title",
                          "The title of the child page",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStackPage:icon-name: (attributes org.gtk.Property.get=adw_view_stack_page_get_icon_name 
org.gtk.Property.set=adw_view_stack_page_set_icon_name)
@@ -306,7 +306,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                          "Icon name",
                          "The icon name of the child page",
                          NULL,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStackPage:needs-attention: (attributes 
org.gtk.Property.get=adw_view_stack_page_get_needs_attention 
org.gtk.Property.set=adw_view_stack_page_set_needs_attention)
@@ -322,7 +322,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                           "Needs Attention",
                           "Whether the page requires the user attention",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStackPage:badge-number: (attributes org.gtk.Property.get=adw_view_stack_page_get_badge_number 
org.gtk.Property.set=adw_view_stack_page_set_badge_number)
@@ -341,7 +341,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                        "Badge_number",
                        "A number associated with the page",
                        0, G_MAXUINT, 0,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStackPage:visible: (attributes org.gtk.Property.get=adw_view_stack_page_get_visible 
org.gtk.Property.set=adw_view_stack_page_set_visible)
@@ -358,7 +358,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                           "Visible",
                           "Whether this page is visible",
                           TRUE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStackPage:use-underline: (attributes org.gtk.Property.get=adw_view_stack_page_get_use_underline 
org.gtk.Property.set=adw_view_stack_page_set_use_underline)
@@ -372,7 +372,7 @@ adw_view_stack_page_class_init (AdwViewStackPageClass *class)
                           "Use underline",
                           "Whether an embedded underline in the title label indicates a mnemonic",
                           FALSE,
-                          G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PAGE_PROP, page_props);
 }
@@ -925,7 +925,7 @@ adw_view_stack_class_init (AdwViewStackClass *klass)
                             "Horizontally homogeneous",
                             "Whether the stack allocates the same width for all children",
                             TRUE,
-                            G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStack:vhomogeneous: (attributes org.gtk.Property.get=adw_view_stack_get_vhomogeneous 
org.gtk.Property.set=adw_view_stack_set_vhomogeneous)
@@ -942,7 +942,7 @@ adw_view_stack_class_init (AdwViewStackClass *klass)
                             "Vertically homogeneous",
                             "Whether the stack allocates the same height for all children",
                             TRUE,
-                            G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                            G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStack:visible-child: (attributes org.gtk.Property.get=adw_view_stack_get_visible_child 
org.gtk.Property.set=adw_view_stack_set_visible_child)
@@ -956,7 +956,7 @@ adw_view_stack_class_init (AdwViewStackClass *klass)
                            "Visible child",
                            "The widget currently visible in the stack",
                            GTK_TYPE_WIDGET,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStack:visible-child-name: (attributes org.gtk.Property.get=adw_view_stack_get_visible_child_name 
org.gtk.Property.set=adw_view_stack_set_visible_child_name)
@@ -972,7 +972,7 @@ adw_view_stack_class_init (AdwViewStackClass *klass)
                            "Name of visible child",
                            "The name of the widget currently visible in the stack",
                            NULL,
-                           G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewStack:pages: (attributes org.gtk.Property.get=adw_view_stack_get_pages)
@@ -988,7 +988,7 @@ adw_view_stack_class_init (AdwViewStackClass *klass)
                            "Pages",
                            "A selection model with the stack's pages",
                            GTK_TYPE_SELECTION_MODEL,
-                           G_PARAM_READABLE);
+                           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-view-switcher-bar.c b/src/adw-view-switcher-bar.c
index f7601329..ce00f363 100644
--- a/src/adw-view-switcher-bar.c
+++ b/src/adw-view-switcher-bar.c
@@ -194,7 +194,7 @@ adw_view_switcher_bar_class_init (AdwViewSwitcherBarClass *klass)
                          "Stack",
                          "The stack the view switcher controls",
                          ADW_TYPE_VIEW_STACK,
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherBar:reveal: (attributes org.gtk.Property.get=adw_view_switcher_bar_get_reveal 
org.gtk.Property.set=adw_view_switcher_bar_set_reveal)
@@ -208,7 +208,7 @@ adw_view_switcher_bar_class_init (AdwViewSwitcherBarClass *klass)
                          "Reveal",
                          "Whether the bar should be revealed or hidden",
                          FALSE,
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-view-switcher-button.c b/src/adw-view-switcher-button.c
index 211f27ee..d1798d45 100644
--- a/src/adw-view-switcher-button.c
+++ b/src/adw-view-switcher-button.c
@@ -285,7 +285,7 @@ adw_view_switcher_button_class_init (AdwViewSwitcherButtonClass *klass)
                          "Icon Name",
                          "Icon name for image",
                          "text-x-generic-symbolic",
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherButton:needs-attention: (attributes 
org.gtk.Property.get=adw_view_switcher_button_get_needs_attention 
org.gtk.Property.set=adw_view_switcher_button_set_needs_attention)
@@ -303,7 +303,7 @@ adw_view_switcher_button_class_init (AdwViewSwitcherButtonClass *klass)
                           "Needs attention",
                           "Hint the view needs attention",
                           FALSE,
-                          G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE);
+                          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherButton:badge-number:
@@ -319,7 +319,7 @@ adw_view_switcher_button_class_init (AdwViewSwitcherButtonClass *klass)
                        0,
                        G_MAXUINT,
                        0,
-                       G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-view-switcher-title.c b/src/adw-view-switcher-title.c
index cc5a5b63..ccc9d117 100644
--- a/src/adw-view-switcher-title.c
+++ b/src/adw-view-switcher-title.c
@@ -292,7 +292,7 @@ adw_view_switcher_title_class_init (AdwViewSwitcherTitleClass *klass)
                          "Stack",
                          "The stack the view switcher controls",
                          ADW_TYPE_VIEW_STACK,
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherTitle:title: (attributes org.gtk.Property.get=adw_view_switcher_title_get_title 
org.gtk.Property.set=adw_view_switcher_title_set_title)
@@ -309,7 +309,7 @@ adw_view_switcher_title_class_init (AdwViewSwitcherTitleClass *klass)
                          "Title",
                          "The title to display",
                          "",
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherTitle:subtitle: (attributes org.gtk.Property.get=adw_view_switcher_title_get_subtitle 
org.gtk.Property.set=adw_view_switcher_title_set_subtitle)
@@ -325,7 +325,7 @@ adw_view_switcher_title_class_init (AdwViewSwitcherTitleClass *klass)
                          "Subtitle",
                          "The subtitle to display",
                          "",
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherTitle:view-switcher-enabled: (attributes 
org.gtk.Property.get=adw_view_switcher_title_get_view_switcher_enabled 
org.gtk.Property.set=adw_view_switcher_title_set_view_switcher_enabled)
@@ -346,7 +346,7 @@ adw_view_switcher_title_class_init (AdwViewSwitcherTitleClass *klass)
                          "View switcher enabled",
                          "Whether the view switcher is enabled",
                          TRUE,
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcherTitle:title-visible: (attributes 
org.gtk.Property.get=adw_view_switcher_title_get_title_visible)
@@ -363,7 +363,7 @@ adw_view_switcher_title_class_init (AdwViewSwitcherTitleClass *klass)
                          "Title visible",
                          "Whether the title is currently visible",
                          TRUE,
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READABLE | G_PARAM_STATIC_STRINGS);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-view-switcher.c b/src/adw-view-switcher.c
index 27cbbab1..f54cbca3 100644
--- a/src/adw-view-switcher.c
+++ b/src/adw-view-switcher.c
@@ -362,7 +362,7 @@ adw_view_switcher_class_init (AdwViewSwitcherClass *klass)
                        "The policy to determine the mode to use",
                        ADW_TYPE_VIEW_SWITCHER_POLICY,
                        ADW_VIEW_SWITCHER_POLICY_NARROW,
-                       G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                       G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwViewSwitcher:stack: (attributes org.gtk.Property.get=adw_view_switcher_get_stack 
org.gtk.Property.set=adw_view_switcher_set_stack)
@@ -376,7 +376,7 @@ adw_view_switcher_class_init (AdwViewSwitcherClass *klass)
                          "Stack",
                          "The stack the view switcher controls",
                          ADW_TYPE_VIEW_STACK,
-                         G_PARAM_EXPLICIT_NOTIFY | G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-window-title.c b/src/adw-window-title.c
index 8eefc507..4d9cc3c8 100644
--- a/src/adw-window-title.c
+++ b/src/adw-window-title.c
@@ -133,7 +133,7 @@ adw_window_title_class_init (AdwWindowTitleClass *klass)
                          "Title",
                          "The title to display",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   /**
    * AdwWindowTitle:subtitle: (attributes org.gtk.Property.get=adw_window_title_get_subtitle 
org.gtk.Property.set=adw_window_title_set_subtitle)
@@ -149,7 +149,7 @@ adw_window_title_class_init (AdwWindowTitleClass *klass)
                          "Subtitle",
                          "The subtitle to display",
                          "",
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 
diff --git a/src/adw-window.c b/src/adw-window.c
index ec49b751..091fb7c5 100644
--- a/src/adw-window.c
+++ b/src/adw-window.c
@@ -147,7 +147,7 @@ adw_window_class_init (AdwWindowClass *klass)
                          "Content",
                          "The content widget",
                          GTK_TYPE_WIDGET,
-                         G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
+                         G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
 
   g_object_class_install_properties (object_class, LAST_PROP, props);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]