[gnome-settings-daemon] 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] power: Sync IIO light sensor values right after claiming the interface
- Date: Wed, 6 Jan 2016 13:56:18 +0000 (UTC)
commit 69c85246b4e6033cd32dfc464ed359cb0e2ebea3
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 0d30f37..8b4263b 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)
@@ -998,6 +999,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
@@ -2480,12 +2484,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;
@@ -2501,10 +2501,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);
@@ -2543,6 +2543,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]