[gnome-shell] st: Use g_object_notify_by_pspec() where possible
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] st: Use g_object_notify_by_pspec() where possible
- Date: Thu, 10 Feb 2022 13:14:06 +0000 (UTC)
commit bfb52aaf9d67990d291c764d92e2e354530c191d
Author: Florian Müllner <fmuellner gnome org>
Date: Wed Feb 9 15:22:42 2022 +0100
st: Use g_object_notify_by_pspec() where possible
It's slightly more efficient not having to do property lookups. While
that is unlikely to be a concern for the properties in question, it's
still good practice and makes the code base a bit more consistent.
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2168>
src/st/st-box-layout.c | 35 ++++++++++++++++++++---------------
src/st/st-theme-context.c | 23 ++++++++++++++---------
src/st/st-viewport.c | 23 ++++++++++++++++-------
3 files changed, 50 insertions(+), 31 deletions(-)
---
diff --git a/src/st/st-box-layout.c b/src/st/st-box-layout.c
index 49eaa1948e..269ded4120 100644
--- a/src/st/st-box-layout.c
+++ b/src/st/st-box-layout.c
@@ -60,8 +60,12 @@ enum {
PROP_VERTICAL,
PROP_PACK_START,
+
+ N_PROPS
};
+static GParamSpec *props[N_PROPS] = { NULL, };
+
struct _StBoxLayoutPrivate
{
StAdjustment *hadjustment;
@@ -169,7 +173,6 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
StWidgetClass *widget_class = ST_WIDGET_CLASS (klass);
- GParamSpec *pspec;
object_class->get_property = st_box_layout_get_property;
object_class->set_property = st_box_layout_set_property;
@@ -182,13 +185,13 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
* A convenience property for the #ClutterBoxLayout:vertical property of the
* internal layout for #StBoxLayout.
*/
- pspec = g_param_spec_boolean ("vertical",
- "Vertical",
- "Whether the layout should be vertical, rather"
- "than horizontal",
- FALSE,
- ST_PARAM_READWRITE);
- g_object_class_install_property (object_class, PROP_VERTICAL, pspec);
+ props[PROP_VERTICAL] =
+ g_param_spec_boolean ("vertical",
+ "Vertical",
+ "Whether the layout should be vertical, rather"
+ "than horizontal",
+ FALSE,
+ ST_PARAM_READWRITE);
/**
* StBoxLayout:pack-start:
@@ -196,12 +199,14 @@ st_box_layout_class_init (StBoxLayoutClass *klass)
* A convenience property for the #ClutterBoxLayout:pack-start property of the
* internal layout for #StBoxLayout.
*/
- pspec = g_param_spec_boolean ("pack-start",
- "Pack Start",
- "Whether to pack items at the start of the box",
- FALSE,
- ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
- g_object_class_install_property (object_class, PROP_PACK_START, pspec);
+ props[PROP_PACK_START] =
+ g_param_spec_boolean ("pack-start",
+ "Pack Start",
+ "Whether to pack items at the start of the box",
+ FALSE,
+ ST_PARAM_READWRITE | G_PARAM_DEPRECATED);
+
+ g_object_class_install_properties (object_class, N_PROPS, props);
}
static void
@@ -250,7 +255,7 @@ st_box_layout_set_vertical (StBoxLayout *box,
if (clutter_box_layout_get_orientation (CLUTTER_BOX_LAYOUT (layout)) != orientation)
{
clutter_box_layout_set_orientation (CLUTTER_BOX_LAYOUT (layout), orientation);
- g_object_notify (G_OBJECT (box), "vertical");
+ g_object_notify_by_pspec (G_OBJECT (box), props[PROP_VERTICAL]);
}
}
diff --git a/src/st/st-theme-context.c b/src/st/st-theme-context.c
index 17acd1a10d..34cc4fac0c 100644
--- a/src/st/st-theme-context.c
+++ b/src/st/st-theme-context.c
@@ -46,9 +46,13 @@ struct _StThemeContext {
enum
{
PROP_0,
- PROP_SCALE_FACTOR
+ PROP_SCALE_FACTOR,
+
+ N_PROPS
};
+static GParamSpec *props[N_PROPS] = { NULL, };
+
enum
{
CHANGED,
@@ -85,7 +89,7 @@ st_theme_context_set_scale_factor (StThemeContext *context,
return;
context->scale_factor = scale_factor;
- g_object_notify (G_OBJECT (context), "scale-factor");
+ g_object_notify_by_pspec (G_OBJECT (context), props[PROP_SCALE_FACTOR]);
st_theme_context_changed (context);
}
@@ -133,13 +137,14 @@ st_theme_context_class_init (StThemeContextClass *klass)
*
* The scaling factor used for HiDPI scaling.
*/
- g_object_class_install_property (object_class,
- PROP_SCALE_FACTOR,
- g_param_spec_int ("scale-factor",
- "Scale factor",
- "Integer scale factor used for HiDPI scaling",
- 0, G_MAXINT, 1,
- ST_PARAM_READWRITE));
+ props[PROP_SCALE_FACTOR] =
+ g_param_spec_int ("scale-factor",
+ "Scale factor",
+ "Integer scale factor used for HiDPI scaling",
+ 0, G_MAXINT, 1,
+ ST_PARAM_READWRITE);
+
+ g_object_class_install_properties (object_class, N_PROPS, props);
/**
* StThemeContext::changed:
diff --git a/src/st/st-viewport.c b/src/st/st-viewport.c
index 96b703b14f..3f0cdbb463 100644
--- a/src/st/st-viewport.c
+++ b/src/st/st-viewport.c
@@ -55,11 +55,18 @@ static void st_viewport_scrollable_interface_init (StScrollableInterface *iface)
enum {
PROP_0,
+
PROP_CLIP_TO_VIEW,
+
+ N_PROPS,
+
+ /* StScrollable */
PROP_HADJUST,
PROP_VADJUST
};
+static GParamSpec *props[N_PROPS] = { NULL, };
+
typedef struct
{
StAdjustment *hadjustment;
@@ -177,6 +184,7 @@ st_viewport_set_clip_to_view (StViewport *viewport,
{
priv->clip_to_view = clip_to_view;
clutter_actor_queue_redraw (CLUTTER_ACTOR (viewport));
+ g_object_notify_by_pspec (G_OBJECT (viewport), props[PROP_CLIP_TO_VIEW]);
}
}
@@ -588,13 +596,12 @@ st_viewport_class_init (StViewportClass *klass)
actor_class->get_paint_volume = st_viewport_get_paint_volume;
actor_class->pick = st_viewport_pick;
- g_object_class_install_property (object_class,
- PROP_CLIP_TO_VIEW,
- g_param_spec_boolean ("clip-to-view",
- "Clip to view",
- "Clip to view",
- TRUE,
- ST_PARAM_READWRITE));
+ props[PROP_CLIP_TO_VIEW] =
+ g_param_spec_boolean ("clip-to-view",
+ "Clip to view",
+ "Clip to view",
+ TRUE,
+ ST_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY);
/* StScrollable properties */
g_object_class_override_property (object_class,
@@ -604,6 +611,8 @@ st_viewport_class_init (StViewportClass *klass)
g_object_class_override_property (object_class,
PROP_VADJUST,
"vadjustment");
+
+ g_object_class_install_properties (object_class, N_PROPS, props);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]