Index: editing.c
===================================================================
RCS file: /cvs/gpe/base/gpe-contacts/editing.c,v
retrieving revision 1.37
retrieving revision 1.40
diff -b -B -u -r1.37 -r1.40
--- editing.c	6 Aug 2004 11:06:51 -0000	1.37
+++ editing.c	17 Aug 2004 20:38:31 -0000	1.40
@@ -43,6 +43,19 @@
 void on_unknown_year_toggled (GtkToggleButton *togglebutton, gpointer user_data);
 void on_name_clicked (GtkButton *button, gpointer user_data);
 
+
+
+/* this is the filter for phone number edits */
+static gboolean
+phone_key_press_event (GtkWidget *widget, GdkEventKey *k, gpointer p)
+{
+  if (!strstr(" +0123456789-/()",k->string)) 
+    {
+      return TRUE;
+    }
+  return FALSE;
+}
+
 static void
 add_tag (gchar *tag, GtkWidget *w, GtkWidget *pw)
 {
@@ -71,6 +84,13 @@
           GtkWidget *l;
           
           add_tag (e->tag, w, pw);
+          if (strstr(e->tag,".TELEPHONE")
+              || strstr(e->tag,".MOBILE") 
+              || strstr(e->tag,".FAX"))
+            {
+               g_signal_connect (G_OBJECT (w), "key_press_event", 
+		         G_CALLBACK (phone_key_press_event), NULL);
+            }
           if (strcmp(e->tag,"NAME")) /* the name field on a button */
             {
               l = gtk_label_new (e->name);
@@ -82,6 +102,7 @@
               g_signal_connect(G_OBJECT(l),"clicked",
                                G_CALLBACK(on_name_clicked),
                                gtk_widget_get_toplevel(pw));
+              GTK_WIDGET_SET_FLAGS(w,GTK_CAN_DEFAULT);
             }
           gtk_table_attach (GTK_TABLE (table),
                     l,
@@ -545,8 +566,15 @@
           if (v && v->value)
             {
               if (GTK_IS_EDITABLE (w))
+                {
                 gtk_editable_insert_text (GTK_EDITABLE (w), v->value,
                           strlen (v->value), &pos);
+                  if (!strcasecmp(v->tag,"NAME"))
+                    {
+                      gtk_widget_grab_default(w);
+                      gtk_widget_grab_focus(w);
+                    }
+                }
               else if (GTK_IS_DATE_COMBO(w))
                 {
                   if (v->value)
@@ -683,7 +711,7 @@
           ts = n1;
         }
       for (i=0;i<namenum;i++)
-        gtk_entry_set_text(GTK_ENTRY(nameentry[i]),ts);
+        gtk_entry_set_text(GTK_ENTRY(nameentry[i]),g_strstrip(ts));
       g_free(ts);
     }
 }
Index: namedetail.c
===================================================================
RCS file: /cvs/gpe/base/gpe-contacts/namedetail.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -b -B -u -r1.2 -r1.3
--- namedetail.c	30 Jul 2004 17:00:31 -0000	1.2
+++ namedetail.c	17 Aug 2004 19:29:38 -0000	1.3
@@ -97,6 +97,7 @@
     db_set_data(p, "GIVEN_NAME", g_strdup(gtk_entry_get_text(GTK_ENTRY(egiven))));
     db_set_data(p, "FAMILY_NAME", g_strdup(gtk_entry_get_text(GTK_ENTRY(efamily))));
     db_set_data(p, "HONORIFIC_SUFFIX", g_strdup(gtk_entry_get_text(GTK_ENTRY(esuffix))));
+    db_set_data(p, "NAME", g_strdup(""));
     update_edit(p, parent);
     gtk_widget_destroy(dialog);
     return TRUE;
