Index: ChangeLog
===================================================================
RCS file: /export/src/cvs/evolution/calendar/ChangeLog,v
retrieving revision 1.6
diff -u -r1.6 ChangeLog
--- ChangeLog	2003/10/20 09:20:34	1.6
+++ ChangeLog	2003/12/05 03:31:37
@@ -1,3 +1,10 @@
+2003-11-11 Carl Sun <carl.sun@sun.com>
+                                                                                
+        Fixes #46351
+                                                                                
+        * gui/e-timezone-entry.c  (e_timezone_entry_mnemonic_activate): 
+          new function. override the  member function of GtkWidget to handle  
+          mnemonic_activate signal of custom class ETimezoneEntry. 
 
 -----------------tag A11Y_M2--------------
 
Index: ./gui/e-timezone-entry.c
===================================================================
RCS file: /export/src/cvs/evolution/calendar/gui/e-timezone-entry.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 e-timezone-entry.c
--- ./gui/e-timezone-entry.c	2003/09/26 06:34:29	1.1.1.1
+++ ./gui/e-timezone-entry.c	2003/12/05 03:31:37
@@ -69,6 +69,8 @@
 static void e_timezone_entry_init	(ETimezoneEntry	*tentry);
 static void e_timezone_entry_destroy	(GtkObject	*object);
 
+static gboolean e_timezone_entry_mnemonic_activate (GtkWidget *widget,
+                                                    gboolean   group_cycling);
 static void on_entry_changed		(GtkEntry	*entry,
 					 ETimezoneEntry *tentry);
 static void on_button_clicked		(GtkWidget	*widget,
@@ -92,6 +94,9 @@
 
 	parent_class = g_type_class_peek_parent (class);
 
+	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class) ;
+	widget_class->mnemonic_activate = e_timezone_entry_mnemonic_activate;
+
 	timezone_entry_signals[CHANGED] =
 		gtk_signal_new ("changed",
 				GTK_RUN_LAST,
@@ -158,6 +163,8 @@
 
 	tentry = g_object_new (e_timezone_entry_get_type (), NULL);
 
+	GTK_WIDGET_SET_FLAGS (GTK_WIDGET(tentry), GTK_CAN_FOCUS);
+
 	return GTK_WIDGET (tentry);
 }
 
@@ -297,3 +304,18 @@
 	g_free (name_buffer);
 }
 
+
+static gboolean
+e_timezone_entry_mnemonic_activate (GtkWidget *widget,
+                                    gboolean   group_cycling)
+{
+	GtkButton *button = NULL;
+
+	if (GTK_WIDGET_CAN_FOCUS (widget)) {
+		button=((ETimezoneEntryPrivate*) ((ETimezoneEntry*) widget)->priv)->button;
+		if (button != NULL)
+			gtk_widget_grab_focus (button);
+	}
+
+	return TRUE;
+}
