[gnome-settings-daemon/gnome-3-18] power: Sync IIO light sensor values right after claiming the interface
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-settings-daemon/gnome-3-18] power: Sync IIO light sensor values right after claiming the interface
- Date: Wed, 6 Jan 2016 13:56:08 +0000 (UTC)
commit 7af4fae1808cde85bbecef33fdd08a3329740d08
Author: Rui Matos <tiagomatos gmail com>
Date: Tue Jan 5 18:23:33 2016 +0100
power: Sync IIO light sensor values right after claiming the interface
In case the IIO sensor daemon doesn't change the values immediately
after we claim the interface, we should get them to be in sync from
the start.
https://bugzilla.gnome.org/show_bug.cgi?id=756539
plugins/power/gsd-power-manager.c | 23 ++++++++++++++++-------
1 files changed, 16 insertions(+), 7 deletions(-)
---
diff --git a/plugins/power/gsd-power-manager.c b/plugins/power/gsd-power-manager.c
index d03b9fe..f657bd8 100644
--- a/plugins/power/gsd-power-manager.c
+++ b/plugins/power/gsd-power-manager.c
@@ -213,6 +213,7 @@ static void main_battery_or_ups_low_changed (GsdPowerManager *manager, gboo
static gboolean idle_is_session_inhibited (GsdPowerManager *manager, guint mask, gboolean *is_inhibited);
static void idle_triggered_idle_cb (GnomeIdleMonitor *monitor, guint watch_id, gpointer user_data);
static void idle_became_active_cb (GnomeIdleMonitor *monitor, guint watch_id, gpointer user_data);
+static void iio_proxy_changed (GsdPowerManager *manager);
G_DEFINE_TYPE (GsdPowerManager, gsd_power_manager, G_TYPE_OBJECT)
@@ -1007,6 +1008,9 @@ iio_proxy_claim_light (GsdPowerManager *manager, gboolean active)
g_warning ("Call to ii-proxy failed: %s", error->message);
g_error_free (error);
}
+
+ if (active)
+ iio_proxy_changed (manager);
}
static void
@@ -2490,12 +2494,8 @@ on_rr_screen_acquired (GObject *object,
}
static void
-iio_proxy_changed_cb (GDBusProxy *proxy,
- GVariant *changed_properties,
- GStrv invalidated_properties,
- gpointer user_data)
+iio_proxy_changed (GsdPowerManager *manager)
{
- GsdPowerManager *manager = (GsdPowerManager *) user_data;
GError *error = NULL;
GVariant *val_has = NULL;
GVariant *val_als = NULL;
@@ -2511,10 +2511,10 @@ iio_proxy_changed_cb (GDBusProxy *proxy,
return;
/* get latest results, which do not have to be Lux */
- val_has = g_dbus_proxy_get_cached_property (proxy, "HasAmbientLight");
+ val_has = g_dbus_proxy_get_cached_property (manager->priv->iio_proxy, "HasAmbientLight");
if (val_has == NULL || !g_variant_get_boolean (val_has))
goto out;
- val_als = g_dbus_proxy_get_cached_property (proxy, "LightLevel");
+ val_als = g_dbus_proxy_get_cached_property (manager->priv->iio_proxy, "LightLevel");
if (val_als == NULL)
goto out;
manager->priv->ambient_last_absolute = g_variant_get_double (val_als);
@@ -2553,6 +2553,15 @@ out:
}
static void
+iio_proxy_changed_cb (GDBusProxy *proxy,
+ GVariant *changed_properties,
+ GStrv invalidated_properties,
+ gpointer user_data)
+{
+ iio_proxy_changed ((GsdPowerManager *) user_data);
+}
+
+static void
iio_proxy_appeared_cb (GDBusConnection *connection,
const gchar *name,
const gchar *name_owner,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]