aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--addressbook/ChangeLog6
-rw-r--r--addressbook/gui/contact-editor/e-contact-editor.c41
2 files changed, 36 insertions, 11 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog
index acb633b238..acffbf3d6d 100644
--- a/addressbook/ChangeLog
+++ b/addressbook/ChangeLog
@@ -1,3 +1,9 @@
+2005-10-26 Devashish Sharma <sdevashish@novell.com>
+
+ * gui/contact-editor/e-contact-editor.c: Sets the focus to the
+ corresponding ntry field after changing dropdown menus for phone, im
+ and e-mail fields in contact editor. Fixes #229972.
+
2005-10-22 Sushma Rai <rsushma@novell.com>
* gui/widgets/eab-gui-util.c (eab_send_contact_list_as_attachment):
diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c
index 2993e4c403..535285ba6c 100644
--- a/addressbook/gui/contact-editor/e-contact-editor.c
+++ b/addressbook/gui/contact-editor/e-contact-editor.c
@@ -642,6 +642,12 @@ set_option_menu_history (EContactEditor *editor, GtkOptionMenu *option_menu, gin
}
static void
+email_menu_changed(GtkWidget *widget, GtkWidget *next)
+{
+ gtk_widget_grab_focus(next);
+}
+
+static void
init_email_record_location (EContactEditor *editor, gint record)
{
GtkWidget *location_option_menu;
@@ -671,6 +677,7 @@ init_email_record_location (EContactEditor *editor, gint record)
gtk_option_menu_set_menu (GTK_OPTION_MENU (location_option_menu), location_menu);
g_signal_connect (location_option_menu, "changed", G_CALLBACK (object_changed), editor);
+ g_signal_connect (location_option_menu, "changed", G_CALLBACK (email_menu_changed), email_entry);
g_signal_connect (email_entry, "changed", G_CALLBACK (object_changed), editor);
g_signal_connect_swapped (email_entry, "activate", G_CALLBACK (entry_activated), editor);
}
@@ -1209,6 +1216,12 @@ extract_phone (EContactEditor *editor)
}
static void
+phone_menu_changed(GtkWidget *widget, GtkWidget *next)
+{
+ gtk_widget_grab_focus(next);
+}
+
+static void
init_phone_record_type (EContactEditor *editor, gint record)
{
GtkWidget *phone_type_option_menu;
@@ -1238,6 +1251,7 @@ init_phone_record_type (EContactEditor *editor, gint record)
gtk_option_menu_set_menu (GTK_OPTION_MENU (phone_type_option_menu), phone_type_menu);
g_signal_connect (phone_type_option_menu, "changed", G_CALLBACK (object_changed), editor);
+ g_signal_connect (phone_type_option_menu, "changed", G_CALLBACK (phone_menu_changed), phone_entry);
g_signal_connect (phone_entry, "changed", G_CALLBACK (object_changed), editor);
g_signal_connect_swapped (phone_entry, "activate", G_CALLBACK (entry_activated), editor);
}
@@ -1317,19 +1331,13 @@ sensitize_phone (EContactEditor *editor)
static void
init_im_record_location (EContactEditor *editor, gint record)
{
+
#ifdef ENABLE_IM_LOCATION
GtkWidget *location_option_menu;
GtkWidget *location_menu;
gint i;
-#endif
- GtkWidget *name_entry;
- gchar *widget_name;
-
- widget_name = g_strdup_printf ("entry-im-name-%d", record);
- name_entry = glade_xml_get_widget (editor->gui, widget_name);
- g_free (widget_name);
-
-#ifdef ENABLE_IM_LOCATION
+ gchar *widget_name;
+
widget_name = g_strdup_printf ("optionmenu-im-location-%d", record);
location_option_menu = glade_xml_get_widget (editor->gui, widget_name);
g_free (widget_name);
@@ -1348,9 +1356,12 @@ init_im_record_location (EContactEditor *editor, gint record)
g_signal_connect (location_option_menu, "changed", G_CALLBACK (object_changed), editor);
#endif
+}
- g_signal_connect (name_entry, "changed", G_CALLBACK (object_changed), editor);
- g_signal_connect_swapped (name_entry, "activate", G_CALLBACK (entry_activated), editor);
+static void
+im_menu_changed(GtkWidget *widget, GtkWidget *next)
+{
+ gtk_widget_grab_focus(next);
}
static void
@@ -1358,9 +1369,14 @@ init_im_record_service (EContactEditor *editor, gint record)
{
GtkWidget *service_option_menu;
GtkWidget *service_menu;
+ GtkWidget *name_entry;
gchar *widget_name;
gint i;
+ widget_name = g_strdup_printf ("entry-im-name-%d", record);
+ name_entry = glade_xml_get_widget (editor->gui, widget_name);
+ g_free (widget_name);
+
widget_name = g_strdup_printf ("optionmenu-im-service-%d", record);
service_option_menu = glade_xml_get_widget (editor->gui, widget_name);
g_free (widget_name);
@@ -1378,6 +1394,9 @@ init_im_record_service (EContactEditor *editor, gint record)
gtk_option_menu_set_menu (GTK_OPTION_MENU (service_option_menu), service_menu);
g_signal_connect (service_option_menu, "changed", G_CALLBACK (object_changed), editor);
+ g_signal_connect (service_option_menu, "changed", G_CALLBACK (im_menu_changed), name_entry);
+ g_signal_connect (name_entry, "changed", G_CALLBACK (object_changed), editor);
+ g_signal_connect_swapped (name_entry, "activate", G_CALLBACK (entry_activated), editor);
}
static void