backend: Refactor "lid-is-closed" handling code

We'll need to handle another property in the same place, so refactor the
code to allow falling-through to handle another property.

Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2029>
This commit is contained in:
Bastien Nocera 2021-09-30 17:39:28 +02:00
parent e38db1237d
commit 14b6c8780d

View File

@ -647,27 +647,30 @@ upower_properties_changed (GDBusProxy *proxy,
MetaBackend *backend = user_data;
MetaBackendPrivate *priv = meta_backend_get_instance_private (backend);
GVariant *v;
gboolean lid_is_closed;
gboolean reset_idle_time = FALSE;
v = g_variant_lookup_value (changed_properties,
"LidIsClosed",
G_VARIANT_TYPE_BOOLEAN);
if (!v)
return;
if (v)
{
gboolean lid_is_closed;
lid_is_closed = g_variant_get_boolean (v);
g_variant_unref (v);
if (lid_is_closed == priv->lid_is_closed)
return;
if (lid_is_closed != priv->lid_is_closed)
{
priv->lid_is_closed = lid_is_closed;
g_signal_emit (backend, signals[LID_IS_CLOSED_CHANGED], 0,
priv->lid_is_closed);
if (lid_is_closed)
return;
reset_idle_time = TRUE;
}
}
if (reset_idle_time)
meta_idle_manager_reset_idle_time (priv->idle_manager);
}
@ -699,8 +702,8 @@ upower_ready_cb (GObject *source_object,
G_CALLBACK (upower_properties_changed), backend);
v = g_dbus_proxy_get_cached_property (proxy, "LidIsClosed");
if (!v)
return;
if (v)
{
priv->lid_is_closed = g_variant_get_boolean (v);
g_variant_unref (v);
@ -709,6 +712,7 @@ upower_ready_cb (GObject *source_object,
g_signal_emit (backend, signals[LID_IS_CLOSED_CHANGED], 0,
priv->lid_is_closed);
}
}
}
static void