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:
parent
e38db1237d
commit
14b6c8780d
@ -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);
|
||||
|
||||
@ -710,6 +713,7 @@ upower_ready_cb (GObject *source_object,
|
||||
priv->lid_is_closed);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
upower_appeared (GDBusConnection *connection,
|
||||
|
Loading…
Reference in New Issue
Block a user