diff options
author | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-11-29 16:37:22 +0100 |
---|---|---|
committer | Lars Uebernickel <lars.uebernickel@canonical.com> | 2013-11-29 16:37:22 +0100 |
commit | 87f6a0ffe776f382de8b8f8d941ea1b6ab44d59b (patch) | |
tree | b68e11f2b9a1a13fedc28d97356ae21adb39bca9 /src/service.c | |
parent | e9b6509cc63d7b01773888db45db5ac17117e352 (diff) | |
download | ayatana-indicator-power-87f6a0ffe776f382de8b8f8d941ea1b6ab44d59b.tar.gz ayatana-indicator-power-87f6a0ffe776f382de8b8f8d941ea1b6ab44d59b.tar.bz2 ayatana-indicator-power-87f6a0ffe776f382de8b8f8d941ea1b6ab44d59b.zip |
Don't keep GSettingsActions around
They were only kept around so that a notify handler could be disconnected.
Since the GSettings object is the canonical source of that data, it makes more
sense to listen to changes there instead of on the action objects.
That was already done for the one remaining key in the schema. This patch
changes that to rebuild the header when any key changes.
Diffstat (limited to 'src/service.c')
-rw-r--r-- | src/service.c | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/src/service.c b/src/service.c index e3952ca..424e489 100644 --- a/src/service.c +++ b/src/service.c @@ -113,8 +113,6 @@ struct _IndicatorPowerServicePrivate GSimpleActionGroup * actions; GSimpleAction * header_action; - GAction * show_time_action; - GAction * show_percentage_action; GSimpleAction * battery_level_action; GSimpleAction * brightness_action; @@ -719,6 +717,8 @@ static void init_gactions (IndicatorPowerService * self) { GSimpleAction * a; + GAction * show_time_action; + GAction * show_percentage_action; priv_t * p = self->priv; GActionEntry entries[] = { @@ -752,16 +752,17 @@ init_gactions (IndicatorPowerService * self) p->brightness_action = a; /* add the show-time action */ - p->show_time_action = g_settings_create_action (p->settings, "show-time"); - g_signal_connect_swapped (p->show_time_action, "notify", G_CALLBACK(rebuild_header_now), self); - g_action_map_add_action (G_ACTION_MAP(p->actions), p->show_time_action); + show_time_action = g_settings_create_action (p->settings, "show-time"); + g_action_map_add_action (G_ACTION_MAP(p->actions), show_time_action); /* add the show-percentage action */ - p->show_percentage_action = g_settings_create_action (p->settings, "show-percentage"); - g_signal_connect_swapped (p->show_percentage_action, "notify", G_CALLBACK(rebuild_header_now), self); - g_action_map_add_action (G_ACTION_MAP(p->actions), p->show_percentage_action); + show_percentage_action = g_settings_create_action (p->settings, "show-percentage"); + g_action_map_add_action (G_ACTION_MAP(p->actions), show_percentage_action); rebuild_header_now (self); + + g_object_unref (show_time_action); + g_object_unref (show_percentage_action); } /*** @@ -964,20 +965,6 @@ my_dispose (GObject * o) g_clear_object (&p->settings); } - if (p->show_time_action != NULL) - { - g_signal_handlers_disconnect_by_data (p->show_time_action, self); - - g_clear_object (&p->show_time_action); - } - - if (p->show_percentage_action != NULL) - { - g_signal_handlers_disconnect_by_data (p->show_percentage_action, self); - - g_clear_object (&p->show_percentage_action); - } - g_clear_object (&p->brightness_action); g_clear_object (&p->battery_level_action); g_clear_object (&p->header_action); @@ -1012,8 +999,7 @@ indicator_power_service_init (IndicatorPowerService * self) init_gactions (self); - g_signal_connect_swapped (p->settings, "changed::" SETTINGS_ICON_POLICY_S, - G_CALLBACK(rebuild_header_now), self); + g_signal_connect_swapped (p->settings, "changed", G_CALLBACK(rebuild_header_now), self); p->own_id = g_bus_own_name (G_BUS_TYPE_SESSION, BUS_NAME, |