diff options
author | Laércio de Sousa <lbsousajr@gmail.com> | 2014-08-22 10:05:44 -0300 |
---|---|---|
committer | Laércio de Sousa <lbsousajr@gmail.com> | 2014-08-22 10:05:44 -0300 |
commit | e79ae990604b302f9d11308b36cbea7746647280 (patch) | |
tree | 8c4ca9b10be9a5747fac03efe41a425c59cc246a | |
parent | 610d6abcf2e745714d962e861faedb572d1e32fb (diff) | |
download | lightdm-e79ae990604b302f9d11308b36cbea7746647280.tar.gz |
Simplify callback function signal_cb() in login1.c.
-rw-r--r-- | src/login1.c | 35 |
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); } } |