]> git.0d.be Git - empathy.git/commitdiff
contact-widget: display map even if contact only published his lat/lon
authorGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 25 Feb 2010 09:42:07 +0000 (09:42 +0000)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 25 Feb 2010 15:04:43 +0000 (15:04 +0000)
We used to hide the whole location vbox if no field was displayed in the
location table (such as street, city, etc).
But if contact only publishes it's lat and lon, we can at least display the
map widget. (#611062)

libempathy-gtk/empathy-contact-widget.c

index f55e814051e2292f4b5aa4684fc09c1c1aab0bf1..f4e7de4e119dedd1aa206e1dfaea1dbfc6878ae4 100644 (file)
@@ -552,6 +552,7 @@ contact_widget_location_update (EmpathyContactWidget *information)
   };
   int i;
   const gchar *skey;
+  gboolean display_map = FALSE;
 
   if (!(information->flags & EMPATHY_CONTACT_WIDGET_SHOW_LOCATION))
     {
@@ -666,20 +667,30 @@ contact_widget_location_update (EmpathyContactWidget *information)
       row++;
     }
 
-  if (row == 0)
+#if HAVE_LIBCHAMPLAIN
+  if (has_position &&
+      !(information->flags & EMPATHY_CONTACT_WIDGET_FOR_TOOLTIP))
+    {
+      /* Cannot be displayed in tooltips until Clutter-Gtk can deal with such
+       * windows */
+      display_map = TRUE;
+    }
+#endif
+
+  if (row > 0)
+    {
+      /* We can display some fields */
+      gtk_widget_show (information->table_location);
+    }
+  else if (!display_map)
     {
+      /* Can't display either fields or map */
       gtk_widget_hide (information->vbox_location);
       return;
     }
 
-  gtk_widget_show (information->table_location);
-
 #if HAVE_LIBCHAMPLAIN
-  /* Cannot be displayed in tooltips until Clutter-Gtk can deal with such
-   * windows
-   */
-  if (has_position &&
-      !(information->flags & EMPATHY_CONTACT_WIDGET_FOR_TOOLTIP))
+  if (display_map)
     {
       ClutterActor *marker;
       ChamplainLayer *layer;