summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaércio de Sousa <lbsousajr@gmail.com>2014-08-22 10:05:44 -0300
committerLaércio de Sousa <lbsousajr@gmail.com>2014-08-22 10:05:44 -0300
commite79ae990604b302f9d11308b36cbea7746647280 (patch)
tree8c4ca9b10be9a5747fac03efe41a425c59cc246a
parent610d6abcf2e745714d962e861faedb572d1e32fb (diff)
downloadlightdm-e79ae990604b302f9d11308b36cbea7746647280.tar.gz
Simplify callback function signal_cb() in login1.c.
-rw-r--r--src/login1.c35
1 files changed, 12 insertions, 23 deletions
diff --git a/src/login1.c b/src/login1.c
index 9ae9d33f..a31bfa42 100644
--- a/src/login1.c
+++ b/src/login1.c
@@ -290,33 +290,22 @@ signal_cb (GDBusConnection *connection,
gpointer user_data)
{
Login1Service *service = user_data;
+ Login1Seat *seat;
+ const gchar *id, *path;
- if (strcmp (signal_name, "SeatNew") == 0)
- {
- const gchar *id, *path;
- Login1Seat *seat;
+ g_variant_get (parameters, "(&s&o)", &id, &path);
+ seat = login1_service_get_seat (service, id);
- g_variant_get (parameters, "(&s&o)", &id, &path);
- seat = login1_service_get_seat (service, id);
- if (!seat)
- {
- seat = add_seat (service, id, path);
- g_signal_emit (service, signals[SEAT_ADDED], 0, seat);
- }
+ if (strcmp (signal_name, "SeatNew") == 0 && !seat)
+ {
+ seat = add_seat (service, id, path);
+ g_signal_emit (service, signals[SEAT_ADDED], 0, seat);
}
- else if (strcmp (signal_name, "SeatRemoved") == 0)
+ else if (strcmp (signal_name, "SeatRemoved") == 0 && seat)
{
- const gchar *id, *path;
- Login1Seat *seat;
-
- g_variant_get (parameters, "(&s&o)", &id, &path);
- seat = login1_service_get_seat (service, id);
- if (seat)
- {
- service->priv->seats = g_list_remove (service->priv->seats, seat);
- g_signal_emit (service, signals[SEAT_REMOVED], 0, seat);
- g_object_unref (seat);
- }
+ service->priv->seats = g_list_remove (service->priv->seats, seat);
+ g_signal_emit (service, signals[SEAT_REMOVED], 0, seat);
+ g_object_unref (seat);
}
}