shell: Specify G_PARAM_EXPLICIT_NOTIFY where appropriate
Like we did in ST, opt out of g_object_set()'s implicit change notifications, so that notify is only emitted when a property *actually* changes. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2168>
This commit is contained in:
parent
17719352f3
commit
9a2505f18c
@ -776,14 +776,14 @@ shell_blur_effect_class_init (ShellBlurEffectClass *klass)
|
|||||||
"Sigma",
|
"Sigma",
|
||||||
"Sigma",
|
"Sigma",
|
||||||
0, G_MAXINT, 0,
|
0, G_MAXINT, 0,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
properties[PROP_BRIGHTNESS] =
|
properties[PROP_BRIGHTNESS] =
|
||||||
g_param_spec_float ("brightness",
|
g_param_spec_float ("brightness",
|
||||||
"Brightness",
|
"Brightness",
|
||||||
"Brightness",
|
"Brightness",
|
||||||
0.f, 1.f, 1.f,
|
0.f, 1.f, 1.f,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
properties[PROP_MODE] =
|
properties[PROP_MODE] =
|
||||||
g_param_spec_enum ("mode",
|
g_param_spec_enum ("mode",
|
||||||
@ -791,7 +791,7 @@ shell_blur_effect_class_init (ShellBlurEffectClass *klass)
|
|||||||
"Blur mode",
|
"Blur mode",
|
||||||
SHELL_TYPE_BLUR_MODE,
|
SHELL_TYPE_BLUR_MODE,
|
||||||
SHELL_BLUR_MODE_ACTOR,
|
SHELL_BLUR_MODE_ACTOR,
|
||||||
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, N_PROPS, properties);
|
g_object_class_install_properties (object_class, N_PROPS, properties);
|
||||||
}
|
}
|
||||||
|
@ -213,10 +213,26 @@ shell_global_set_property(GObject *object,
|
|||||||
global->session_mode = g_ascii_strdown (g_value_get_string (value), -1);
|
global->session_mode = g_ascii_strdown (g_value_get_string (value), -1);
|
||||||
break;
|
break;
|
||||||
case PROP_FRAME_TIMESTAMPS:
|
case PROP_FRAME_TIMESTAMPS:
|
||||||
global->frame_timestamps = g_value_get_boolean (value);
|
{
|
||||||
|
gboolean enable = g_value_get_boolean (value);
|
||||||
|
|
||||||
|
if (global->frame_timestamps != enable)
|
||||||
|
{
|
||||||
|
global->frame_timestamps = enable;
|
||||||
|
g_object_notify_by_pspec (object, props[PROP_FRAME_TIMESTAMPS]);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case PROP_FRAME_FINISH_TIMESTAMP:
|
case PROP_FRAME_FINISH_TIMESTAMP:
|
||||||
global->frame_finish_timestamp = g_value_get_boolean (value);
|
{
|
||||||
|
gboolean enable = g_value_get_boolean (value);
|
||||||
|
|
||||||
|
if (global->frame_finish_timestamp != enable)
|
||||||
|
{
|
||||||
|
global->frame_finish_timestamp = enable;
|
||||||
|
g_object_notify_by_pspec (object, props[PROP_FRAME_FINISH_TIMESTAMP]);
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
@ -609,14 +625,14 @@ shell_global_class_init (ShellGlobalClass *klass)
|
|||||||
"Frame Timestamps",
|
"Frame Timestamps",
|
||||||
"Whether to log frame timestamps in the performance log",
|
"Whether to log frame timestamps in the performance log",
|
||||||
FALSE,
|
FALSE,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
props[PROP_FRAME_FINISH_TIMESTAMP] =
|
props[PROP_FRAME_FINISH_TIMESTAMP] =
|
||||||
g_param_spec_boolean ("frame-finish-timestamp",
|
g_param_spec_boolean ("frame-finish-timestamp",
|
||||||
"Frame Finish Timestamps",
|
"Frame Finish Timestamps",
|
||||||
"Whether at the end of a frame to call glFinish and log paintCompletedTimestamp",
|
"Whether at the end of a frame to call glFinish and log paintCompletedTimestamp",
|
||||||
FALSE,
|
FALSE,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
props[PROP_SWITCHEROO_CONTROL] =
|
props[PROP_SWITCHEROO_CONTROL] =
|
||||||
g_param_spec_object ("switcheroo-control",
|
g_param_spec_object ("switcheroo-control",
|
||||||
|
@ -405,7 +405,7 @@ shell_keyring_prompt_class_init (ShellKeyringPromptClass *klass)
|
|||||||
"Password actor",
|
"Password actor",
|
||||||
"Text field for password",
|
"Text field for password",
|
||||||
CLUTTER_TYPE_TEXT,
|
CLUTTER_TYPE_TEXT,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ShellKeyringPrompt:confirm-actor:
|
* ShellKeyringPrompt:confirm-actor:
|
||||||
@ -417,7 +417,7 @@ shell_keyring_prompt_class_init (ShellKeyringPromptClass *klass)
|
|||||||
"Confirm actor",
|
"Confirm actor",
|
||||||
"Text field for confirming password",
|
"Text field for confirming password",
|
||||||
CLUTTER_TYPE_TEXT,
|
CLUTTER_TYPE_TEXT,
|
||||||
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS);
|
G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_EXPLICIT_NOTIFY);
|
||||||
|
|
||||||
g_object_class_install_properties (gobject_class, N_PROPS, props);
|
g_object_class_install_properties (gobject_class, N_PROPS, props);
|
||||||
|
|
||||||
|
@ -53,7 +53,8 @@ shell_window_preview_set_property (GObject *gobject,
|
|||||||
switch (property_id)
|
switch (property_id)
|
||||||
{
|
{
|
||||||
case PROP_WINDOW_CONTAINER:
|
case PROP_WINDOW_CONTAINER:
|
||||||
g_set_object (&self->window_container, g_value_get_object (value));
|
if (g_set_object (&self->window_container, g_value_get_object (value)))
|
||||||
|
g_object_notify_by_pspec (gobject, obj_props[PROP_WINDOW_CONTAINER]);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@ -169,6 +170,7 @@ shell_window_preview_class_init (ShellWindowPreviewClass *klass)
|
|||||||
"window-container",
|
"window-container",
|
||||||
CLUTTER_TYPE_ACTOR,
|
CLUTTER_TYPE_ACTOR,
|
||||||
G_PARAM_READWRITE |
|
G_PARAM_READWRITE |
|
||||||
|
G_PARAM_EXPLICIT_NOTIFY |
|
||||||
G_PARAM_STATIC_STRINGS);
|
G_PARAM_STATIC_STRINGS);
|
||||||
|
|
||||||
g_object_class_install_properties (gobject_class, PROP_LAST, obj_props);
|
g_object_class_install_properties (gobject_class, PROP_LAST, obj_props);
|
||||||
|
Loading…
Reference in New Issue
Block a user