diff options
author | Bastien Nocera <hadess@hadess.net> | 2013-10-12 19:42:06 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2013-10-14 11:06:53 +0200 |
commit | 3d16414652198f96ff60d6fabe5b4959643f9f18 (patch) | |
tree | 90ae3d74fd07ac6006d6fd4c4eab28bfdec08506 /src/up-daemon.c | |
parent | e0fb5078bd1320e3e31ec029708251cda436bfa4 (diff) | |
download | upower-3d16414652198f96ff60d6fabe5b4959643f9f18.tar.gz |
daemon: Emit the "Changed" signal without going through notify
There's no need to use the "notify" signal to capture when
the properties are changed, we're the ones sending the notify
signals in the first place.
Diffstat (limited to 'src/up-daemon.c')
-rw-r--r-- | src/up-daemon.c | 50 |
1 files changed, 25 insertions, 25 deletions
diff --git a/src/up-daemon.c b/src/up-daemon.c index ee6fab0..da42ca3 100644 --- a/src/up-daemon.c +++ b/src/up-daemon.c @@ -373,6 +373,21 @@ up_daemon_get_device_list (UpDaemon *daemon) } /** + * up_daemon_properties_changed_cb: + **/ +static void +up_daemon_emit_properties_changed (UpDaemon *daemon) +{ + g_return_if_fail (UP_IS_DAEMON (daemon)); + + /* emit */ + if (!daemon->priv->during_coldplug) { + g_debug ("emitting changed"); + g_signal_emit (daemon, signals[SIGNAL_CHANGED], 0); + } +} + +/** * up_daemon_set_lid_is_closed: **/ void @@ -389,6 +404,8 @@ up_daemon_set_lid_is_closed (UpDaemon *daemon, gboolean lid_is_closed) g_debug ("lid_is_closed = %s", lid_is_closed ? "yes" : "no"); priv->lid_is_closed = lid_is_closed; g_object_notify (G_OBJECT (daemon), "lid-is-closed"); + + up_daemon_emit_properties_changed (daemon); } /** @@ -408,6 +425,8 @@ up_daemon_set_lid_is_present (UpDaemon *daemon, gboolean lid_is_present) g_debug ("lid_is_present = %s", lid_is_present ? "yes" : "no"); priv->lid_is_present = lid_is_present; g_object_notify (G_OBJECT (daemon), "lid-is-present"); + + up_daemon_emit_properties_changed (daemon); } /** @@ -420,6 +439,8 @@ up_daemon_set_is_docked (UpDaemon *daemon, gboolean is_docked) g_debug ("is_docked = %s", is_docked ? "yes" : "no"); priv->is_docked = is_docked; g_object_notify (G_OBJECT (daemon), "is-docked"); + + up_daemon_emit_properties_changed (daemon); } /** @@ -432,6 +453,8 @@ up_daemon_set_on_battery (UpDaemon *daemon, gboolean on_battery) g_debug ("on_battery = %s", on_battery ? "yes" : "no"); priv->on_battery = on_battery; g_object_notify (G_OBJECT (daemon), "on-battery"); + + up_daemon_emit_properties_changed (daemon); } /** @@ -444,6 +467,8 @@ up_daemon_set_warning_level (UpDaemon *daemon, UpDeviceLevel warning_level) g_debug ("warning_level = %s", up_device_level_to_string (warning_level)); priv->warning_level = warning_level; g_object_notify (G_OBJECT (daemon), "warning-level"); + + up_daemon_emit_properties_changed (daemon); } UpDeviceLevel @@ -664,21 +689,6 @@ up_daemon_device_removed_cb (UpBackend *backend, GObject *native, UpDevice *devi g_object_unref (device); } -/** - * up_daemon_properties_changed_cb: - **/ -static void -up_daemon_properties_changed_cb (GObject *object, GParamSpec *pspec, UpDaemon *daemon) -{ - g_return_if_fail (UP_IS_DAEMON (daemon)); - - /* emit */ - if (!daemon->priv->during_coldplug) { - g_debug ("emitting changed"); - g_signal_emit (daemon, signals[SIGNAL_CHANGED], 0); - } -} - #define LOAD_OR_DEFAULT(val, str, def) val = (load_default ? def : up_config_get_uint (daemon->priv->config, str)) static void @@ -742,16 +752,6 @@ up_daemon_init (UpDaemon *daemon) G_CALLBACK (up_daemon_device_added_cb), daemon); g_signal_connect (daemon->priv->backend, "device-removed", G_CALLBACK (up_daemon_device_removed_cb), daemon); - - /* watch when these properties change */ - g_signal_connect (daemon, "notify::lid-is-present", - G_CALLBACK (up_daemon_properties_changed_cb), daemon); - g_signal_connect (daemon, "notify::lid-is-closed", - G_CALLBACK (up_daemon_properties_changed_cb), daemon); - g_signal_connect (daemon, "notify::on-battery", - G_CALLBACK (up_daemon_properties_changed_cb), daemon); - g_signal_connect (daemon, "notify::warning-level", - G_CALLBACK (up_daemon_properties_changed_cb), daemon); } /** |