aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog9
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.glade2
-rw-r--r--calendar/gui/e-timezone-entry.c24
3 files changed, 34 insertions, 1 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 4984ef2095..bb5ccb4db9 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,12 @@
+2003-12-08 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
+ nemonic_activate signal of custom class ETimezoneEntry.
+
+
2003-12-08 Bolian Yin <bolian.yin@sun.com>
* gui/gnome-cal.c (gnome_calendar_class_init): correct argument mismatch in "goto_date" signal definition.
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade b/calendar/gui/dialogs/cal-prefs-dialog.glade
index ff79e2cb2b..d566368611 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.glade
+++ b/calendar/gui/dialogs/cal-prefs-dialog.glade
@@ -116,6 +116,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">timezone</property>
</widget>
<packing>
<property name="left_attach">0</property>
@@ -217,6 +218,7 @@
<child>
<widget class="Custom" id="timezone">
<property name="visible">True</property>
+ <property name="can_focus">True</property>
<property name="creation_function">make_timezone_entry</property>
<property name="int1">0</property>
<property name="int2">0</property>
diff --git a/calendar/gui/e-timezone-entry.c b/calendar/gui/e-timezone-entry.c
index c4e2af01a7..6f6a965f7a 100644
--- a/calendar/gui/e-timezone-entry.c
+++ b/calendar/gui/e-timezone-entry.c
@@ -68,6 +68,8 @@ static void e_timezone_entry_class_init (ETimezoneEntryClass *class);
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,
@@ -86,11 +88,13 @@ static void
e_timezone_entry_class_init (ETimezoneEntryClass *class)
{
GtkObjectClass *object_class = (GtkObjectClass *) class;
-
+ GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (class) ;
+
object_class = (GtkObjectClass*) class;
parent_class = g_type_class_peek_parent (class);
+ widget_class->mnemonic_activate = e_timezone_entry_mnemonic_activate;
timezone_entry_signals[CHANGED] =
gtk_signal_new ("changed",
GTK_RUN_LAST,
@@ -157,6 +161,8 @@ e_timezone_entry_new (void)
tentry = g_object_new (e_timezone_entry_get_type (), NULL);
+ GTK_WIDGET_SET_FLAGS (GTK_WIDGET(tentry), GTK_CAN_FOCUS);
+
return GTK_WIDGET (tentry);
}
@@ -296,3 +302,19 @@ e_timezone_entry_set_entry (ETimezoneEntry *tentry)
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;
+}
+