]> rtime.felk.cvut.cz Git - sojka/lightdm.git/commitdiff
Simplify callback function signal_cb() in login1.c.
authorLaércio de Sousa <lbsousajr@gmail.com>
Fri, 22 Aug 2014 13:05:44 +0000 (10:05 -0300)
committerLaércio de Sousa <lbsousajr@gmail.com>
Fri, 22 Aug 2014 13:05:44 +0000 (10:05 -0300)
src/login1.c

index 9ae9d33f9c1001f7fabb36b19b8c3e6edefe0dc1..a31bfa424911f4dc050560607118da5a44e0757a 100644 (file)
@@ -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);
     } 
 }