aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog44
-rw-r--r--calendar/gui/calendar-commands.c8
-rw-r--r--calendar/gui/dialogs/alarm-dialog.glade28
-rw-r--r--calendar/gui/dialogs/cal-prefs-dialog.glade18
-rw-r--r--calendar/gui/dialogs/event-page.c4
-rw-r--r--calendar/gui/dialogs/event-page.glade13
-rw-r--r--calendar/gui/dialogs/meeting-page.glade3
-rw-r--r--calendar/gui/dialogs/task-page.c4
-rw-r--r--calendar/gui/dialogs/task-page.glade16
-rw-r--r--calendar/gui/e-alarm-list.c1
-rw-r--r--calendar/gui/e-date-time-list.c1
-rw-r--r--calendar/gui/e-meeting-time-sel.c17
-rw-r--r--calendar/gui/e-timezone-entry.c40
-rw-r--r--calendar/gui/e-week-view.c16
14 files changed, 187 insertions, 26 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 58363a96b9..30338a31b0 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,47 @@
+2004-10-12 Li Yuan <li.yuan@sun.com>
+
+ * gui/calendar-commands.c:
+ (calendar_get_text_for_folder_bar_label):
+ When the start year and the end year are the same, the num should
+ be displayed in start time.
+ * gui/dialogs/alarm-dialog.glade:
+ Add names to comboxes in alarm-dialog page.
+ * gui/dialogs/cal-prefs-dialog.glade:
+ Add labbled_by relation for e_date_edit.
+ Add names to comboxes in general tab and display tab.
+ Add shortcut keys to start_of_day_label and end_of_day_label.
+ * gui/dialogs/event-page.c: (init_widgets):
+ Use the default text_buffer of gtk_text_view instead of
+ creating one.
+ * gui/dialogs/event-page.glade:
+ Add labbled_by relation for e_date_edit.
+ * gui/dialogs/meeting-page.glade:
+ Set an atk name for organizer widget.
+ * gui/dialogs/task-page.c: (init_widgets):
+ Use the default text_buffer of gtk_text_view instead of
+ creating one.
+ * gui/dialogs/task-page.glade:
+ Add labbled_by relation for e_date_edit.
+ Add a11y names to task description and categories.
+ * gui/e-alarm-list.c: (e_alarm_list_iter_n_children):
+ Remove the iter checker. The iter can't have a valid value at this time.
+ * gui/e-date-time-list.c: (e_date_time_list_iter_n_children):
+ Remove the iter checker. The iter can't have a valid value at this time.
+ * gui/e-meeting-time-sel.c: (e_meeting_time_selector_construct):
+ Add labbled_by relation for e_date_edit.
+ * gui/e-timezone-entry.c: (e_timezone_entry_class_init),
+ (e_timezone_entry_init), (e_timezone_entry_mnemonic_activate),
+ (e_timezone_entry_focus):
+ Add a focus handler for e-timezone-entry. Set an atk name for the
+ button.
+ * gui/e-week-view.c: (e_week_view_do_cursor_key_up),
+ (e_week_view_do_cursor_key_down), (e_week_view_do_cursor_key_left),
+ (e_week_view_do_cursor_key_right), (e_month_view_do_cursor_key_up),
+ (e_month_view_do_cursor_key_down),
+ (e_month_view_do_cursor_key_left),
+ (e_month_view_do_cursor_key_right):
+ Emit the selected_time_changed signal after the selection day changed.
+
2004-10-11 Not Zed <NotZed@Ximian.com>
* gui/alarm-notify/alarm-queue.c (tray_icon_clicked_cb): convert
diff --git a/calendar/gui/calendar-commands.c b/calendar/gui/calendar-commands.c
index e3ebf3a6da..35dfa83d8d 100644
--- a/calendar/gui/calendar-commands.c
+++ b/calendar/gui/calendar-commands.c
@@ -434,9 +434,9 @@ calendar_get_text_for_folder_bar_label (GnomeCalendar *gcal)
_("%A %d %B %Y"), &start_tm);
} else if (start_tm.tm_year == end_tm.tm_year) {
e_utf8_strftime (buffer, sizeof (buffer),
- _("%a %d %b"), &start_tm);
+ _("%a %d %b %Y"), &start_tm);
e_utf8_strftime (end_buffer, sizeof (end_buffer),
- _("%a %d %b %Y"), &end_tm);
+ _("%a %d %b"), &end_tm);
strcat (buffer, " - ");
strcat (buffer, end_buffer);
} else {
@@ -464,9 +464,9 @@ calendar_get_text_for_folder_bar_label (GnomeCalendar *gcal)
strcat (buffer, end_buffer);
} else {
e_utf8_strftime (buffer, sizeof (buffer),
- _("%d %B"), &start_tm);
+ _("%d %B %Y"), &start_tm);
e_utf8_strftime (end_buffer, sizeof (end_buffer),
- _("%d %B %Y"), &end_tm);
+ _("%d %B"), &end_tm);
strcat (buffer, " - ");
strcat (buffer, end_buffer);
}
diff --git a/calendar/gui/dialogs/alarm-dialog.glade b/calendar/gui/dialogs/alarm-dialog.glade
index 28898692ea..45617ea52f 100644
--- a/calendar/gui/dialogs/alarm-dialog.glade
+++ b/calendar/gui/dialogs/alarm-dialog.glade
@@ -13,6 +13,11 @@
<property name="modal">True</property>
<property name="resizable">True</property>
<property name="destroy_with_parent">False</property>
+ <property name="decorated">True</property>
+ <property name="skip_taskbar_hint">False</property>
+ <property name="skip_pager_hint">False</property>
+ <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+ <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
<property name="has_separator">True</property>
<child internal-child="vbox">
@@ -34,6 +39,7 @@
<property name="label">gtk-cancel</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<property name="response_id">-6</property>
</widget>
</child>
@@ -46,6 +52,7 @@
<property name="label">gtk-ok</property>
<property name="use_stock">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<property name="response_id">-5</property>
</widget>
</child>
@@ -117,6 +124,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose alarm action</atkproperty>
+ </accessibility>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget1">
@@ -187,6 +197,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose alarm value units</atkproperty>
+ </accessibility>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget5">
@@ -230,6 +243,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose alarm relative</atkproperty>
+ </accessibility>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget9">
@@ -265,6 +281,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose alarm time</atkproperty>
+ </accessibility>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget12">
@@ -371,6 +390,7 @@
<property name="label" translatable="yes">_Repeat the alarm</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
@@ -581,6 +601,7 @@
<property name="label" translatable="yes">Custom _message</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
@@ -614,6 +635,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
@@ -706,6 +729,7 @@
<property name="label" translatable="yes">Custom alarm sound</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
@@ -970,6 +994,7 @@
<property name="label" translatable="yes">Send To:</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
</widget>
<packing>
<property name="padding">0</property>
@@ -1002,6 +1027,7 @@
<property name="label" translatable="yes">Custom _message</property>
<property name="use_underline">True</property>
<property name="relief">GTK_RELIEF_NORMAL</property>
+ <property name="focus_on_click">True</property>
<property name="active">False</property>
<property name="inconsistent">False</property>
<property name="draw_indicator">True</property>
@@ -1035,6 +1061,8 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="editable">True</property>
+ <property name="overwrite">False</property>
+ <property name="accepts_tab">True</property>
<property name="justification">GTK_JUSTIFY_LEFT</property>
<property name="wrap_mode">GTK_WRAP_WORD</property>
<property name="cursor_visible">True</property>
diff --git a/calendar/gui/dialogs/cal-prefs-dialog.glade b/calendar/gui/dialogs/cal-prefs-dialog.glade
index 02de705b30..f2c48c19a2 100644
--- a/calendar/gui/dialogs/cal-prefs-dialog.glade
+++ b/calendar/gui/dialogs/cal-prefs-dialog.glade
@@ -648,7 +648,7 @@
</child>
<child>
- <widget class="GtkLabel" id="label34">
+ <widget class="GtkLabel" id="end_of_day_label">
<property name="visible">True</property>
<property name="label" translatable="yes">Day _ends:</property>
<property name="use_underline">True</property>
@@ -660,6 +660,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">end_of_day</property>
</widget>
<packing>
<property name="left_attach">0</property>
@@ -672,7 +673,7 @@
</child>
<child>
- <widget class="GtkLabel" id="label33">
+ <widget class="GtkLabel" id="start_of_day_label">
<property name="visible">True</property>
<property name="label" translatable="yes">_Day begins:</property>
<property name="use_underline">True</property>
@@ -684,6 +685,7 @@
<property name="yalign">0.5</property>
<property name="xpad">0</property>
<property name="ypad">0</property>
+ <property name="mnemonic_widget">start_of_day</property>
</widget>
<packing>
<property name="left_attach">0</property>
@@ -702,6 +704,9 @@
<property name="int1">0</property>
<property name="int2">0</property>
<property name="last_modification_time">Thu, 30 May 2002 19:26:53 GMT</property>
+ <accessibility>
+ <atkrelation target="start_of_day_label" type="labelled-by"/>
+ </accessibility>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -720,6 +725,9 @@
<property name="int1">0</property>
<property name="int2">0</property>
<property name="last_modification_time">Thu, 30 May 2002 19:27:35 GMT</property>
+ <accessibility>
+ <atkrelation target="end_of_day_label" type="labelled-by"/>
+ </accessibility>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -881,6 +889,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose reminder units</atkproperty>
+ </accessibility>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget9">
@@ -1421,6 +1432,9 @@
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="history">0</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">option menu to choose time units</atkproperty>
+ </accessibility>
<child internal-child="menu">
<widget class="GtkMenu" id="convertwidget19">
diff --git a/calendar/gui/dialogs/event-page.c b/calendar/gui/dialogs/event-page.c
index 0b6fa70727..d5a73c92a1 100644
--- a/calendar/gui/dialogs/event-page.c
+++ b/calendar/gui/dialogs/event-page.c
@@ -1763,9 +1763,7 @@ init_widgets (EventPage *epage)
G_CALLBACK (summary_changed_cb), epage);
/* Description */
- text_buffer = gtk_text_buffer_new (NULL);
- gtk_text_view_set_buffer (GTK_TEXT_VIEW (priv->description), text_buffer);
- g_object_unref (text_buffer);
+ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->description));
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (priv->description), GTK_WRAP_WORD);
diff --git a/calendar/gui/dialogs/event-page.glade b/calendar/gui/dialogs/event-page.glade
index eef0ef201f..d6744f837a 100644
--- a/calendar/gui/dialogs/event-page.glade
+++ b/calendar/gui/dialogs/event-page.glade
@@ -197,6 +197,9 @@
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Event Description</atkproperty>
+ </accessibility>
</widget>
</child>
</widget>
@@ -475,6 +478,9 @@
<property name="int1">0</property>
<property name="int2">0</property>
<property name="last_modification_time">Tue, 16 May 2000 19:11:05 GMT</property>
+ <accessibility>
+ <atkrelation target="start-time-label" type="labelled-by"/>
+ </accessibility>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -493,6 +499,9 @@
<property name="int1">0</property>
<property name="int2">0</property>
<property name="last_modification_time">Tue, 16 May 2000 19:11:10 GMT</property>
+ <accessibility>
+ <atkrelation target="end-time-label" type="labelled-by"/>
+ </accessibility>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -522,7 +531,7 @@
</child>
<child>
- <widget class="GtkLabel" id="label57">
+ <widget class="GtkLabel" id="start-time-label">
<property name="visible">True</property>
<property name="label" translatable="yes">_Start time:</property>
<property name="use_underline">True</property>
@@ -547,7 +556,7 @@
</child>
<child>
- <widget class="GtkLabel" id="label58">
+ <widget class="GtkLabel" id="end-time-label">
<property name="visible">True</property>
<property name="label" translatable="yes">_End time:</property>
<property name="use_underline">True</property>
diff --git a/calendar/gui/dialogs/meeting-page.glade b/calendar/gui/dialogs/meeting-page.glade
index ed347b2432..51f7399b5f 100644
--- a/calendar/gui/dialogs/meeting-page.glade
+++ b/calendar/gui/dialogs/meeting-page.glade
@@ -65,6 +65,9 @@
<property name="case_sensitive">False</property>
<property name="enable_arrow_keys">True</property>
<property name="enable_arrows_always">False</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Organizer</atkproperty>
+ </accessibility>
<child internal-child="entry">
<widget class="GtkEntry" id="organizer-entry">
diff --git a/calendar/gui/dialogs/task-page.c b/calendar/gui/dialogs/task-page.c
index f3bdf10519..2779c0f2a2 100644
--- a/calendar/gui/dialogs/task-page.c
+++ b/calendar/gui/dialogs/task-page.c
@@ -865,9 +865,7 @@ init_widgets (TaskPage *tpage)
G_CALLBACK (summary_changed_cb), tpage);
/* Description */
- text_buffer = gtk_text_buffer_new (NULL);
- gtk_text_view_set_buffer (GTK_TEXT_VIEW (priv->description), text_buffer);
- g_object_unref (text_buffer);
+ text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->description));
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (priv->description), GTK_WRAP_WORD);
diff --git a/calendar/gui/dialogs/task-page.glade b/calendar/gui/dialogs/task-page.glade
index 1b688fe1ab..c66ceb1932 100644
--- a/calendar/gui/dialogs/task-page.glade
+++ b/calendar/gui/dialogs/task-page.glade
@@ -276,6 +276,9 @@
<property name="has_frame">True</property>
<property name="invisible_char" translatable="yes">*</property>
<property name="activates_default">False</property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Categories</atkproperty>
+ </accessibility>
</widget>
<packing>
<property name="left_attach">1</property>
@@ -311,6 +314,9 @@
<property name="right_margin">0</property>
<property name="indent">0</property>
<property name="text" translatable="yes"></property>
+ <accessibility>
+ <atkproperty name="AtkObject::accessible_name" translatable="yes">Task Description</atkproperty>
+ </accessibility>
</widget>
</child>
</widget>
@@ -421,7 +427,7 @@
<property name="column_spacing">12</property>
<child>
- <widget class="GtkLabel" id="label29">
+ <widget class="GtkLabel" id="due-date-label">
<property name="visible">True</property>
<property name="label" translatable="yes">_Due date:</property>
<property name="use_underline">True</property>
@@ -446,7 +452,7 @@
</child>
<child>
- <widget class="GtkLabel" id="label30">
+ <widget class="GtkLabel" id="start-date-label">
<property name="visible">True</property>
<property name="label" translatable="yes">Sta_rt date:</property>
<property name="use_underline">True</property>
@@ -498,6 +504,9 @@
<property name="int1">0</property>
<property name="int2">0</property>
<property name="last_modification_time">Tue, 19 Jun 2001 04:43:54 GMT</property>
+ <accessibility>
+ <atkrelation target="due-date-label" type="labelled-by"/>
+ </accessibility>
</widget>
<packing>
<property name="padding">0</property>
@@ -544,6 +553,9 @@
<property name="int1">0</property>
<property name="int2">0</property>
<property name="last_modification_time">Tue, 19 Jun 2001 04:43:46 GMT</property>
+ <accessibility>
+ <atkrelation target="start-date-label" type="labelled-by"/>
+ </accessibility>
</widget>
<packing>
<property name="padding">0</property>
diff --git a/calendar/gui/e-alarm-list.c b/calendar/gui/e-alarm-list.c
index 8ebba1783b..ff23cbeb2d 100644
--- a/calendar/gui/e-alarm-list.c
+++ b/calendar/gui/e-alarm-list.c
@@ -625,7 +625,6 @@ e_alarm_list_iter_n_children (GtkTreeModel *tree_model,
EAlarmList *alarm_list = E_ALARM_LIST (tree_model);
g_return_val_if_fail (E_IS_ALARM_LIST (tree_model), -1);
- g_return_val_if_fail (IS_VALID_ITER (alarm_list, iter), -1);
if (iter == NULL)
return g_list_length (alarm_list->list);
diff --git a/calendar/gui/e-date-time-list.c b/calendar/gui/e-date-time-list.c
index 1a1fbbd783..4ba4a4fcc4 100644
--- a/calendar/gui/e-date-time-list.c
+++ b/calendar/gui/e-date-time-list.c
@@ -518,7 +518,6 @@ e_date_time_list_iter_n_children (GtkTreeModel *tree_model,
EDateTimeList *date_time_list = E_DATE_TIME_LIST (tree_model);
g_return_val_if_fail (E_IS_DATE_TIME_LIST (tree_model), -1);
- g_return_val_if_fail (IS_VALID_ITER (date_time_list, iter), -1);
if (iter == NULL)
return g_list_length (date_time_list->list);
diff --git a/calendar/gui/e-meeting-time-sel.c b/calendar/gui/e-meeting-time-sel.c
index 5335fca5d3..6acd0cd8e6 100644
--- a/calendar/gui/e-meeting-time-sel.c
+++ b/calendar/gui/e-meeting-time-sel.c
@@ -277,6 +277,7 @@ e_meeting_time_selector_construct (EMeetingTimeSelector * mts, EMeetingStore *em
guchar stipple_bits[] = {
0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,
};
+ AtkObject *a11y_label, *a11y_date_edit;
/* The default meeting time is the nearest half-hour interval in the
future, in working hours. */
@@ -591,6 +592,14 @@ e_meeting_time_selector_construct (EMeetingTimeSelector * mts, EMeetingStore *em
gtk_widget_show (table);
mts->start_date_edit = e_date_edit_new ();
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), mts->start_date_edit);
+ a11y_label = gtk_widget_get_accessible (label);
+ a11y_date_edit = gtk_widget_get_accessible (mts->start_date_edit);
+ if (a11y_label != NULL && a11y_date_edit != NULL) {
+ atk_object_add_relationship (a11y_date_edit,
+ ATK_RELATION_LABELLED_BY,
+ a11y_label);
+ }
e_date_edit_set_show_time (E_DATE_EDIT (mts->start_date_edit), TRUE);
e_date_edit_set_use_24_hour_format (E_DATE_EDIT (mts->start_date_edit),
calendar_config_get_24_hour_format ());
@@ -610,6 +619,14 @@ e_meeting_time_selector_construct (EMeetingTimeSelector * mts, EMeetingStore *em
gtk_widget_show (label);
mts->end_date_edit = e_date_edit_new ();
+ gtk_label_set_mnemonic_widget (GTK_LABEL (label), mts->end_date_edit);
+ a11y_label = gtk_widget_get_accessible (label);
+ a11y_date_edit = gtk_widget_get_accessible (mts->end_date_edit);
+ if (a11y_label != NULL && a11y_date_edit != NULL) {
+ atk_object_add_relationship (a11y_date_edit,
+ ATK_RELATION_LABELLED_BY,
+ a11y_label);
+ }
e_date_edit_set_show_time (E_DATE_EDIT (mts->end_date_edit), TRUE);
e_date_edit_set_use_24_hour_format (E_DATE_EDIT (mts->end_date_edit),
calendar_config_get_24_hour_format ());
diff --git a/calendar/gui/e-timezone-entry.c b/calendar/gui/e-timezone-entry.c
index fc95d83a74..0c2c795bf3 100644
--- a/calendar/gui/e-timezone-entry.c
+++ b/calendar/gui/e-timezone-entry.c
@@ -36,6 +36,7 @@
#include <gnome.h>
#include <gal/util/e-util.h>
#include <widgets/e-timezone-dialog/e-timezone-dialog.h>
+#include <libgnome/gnome-i18n.h>
#include "e-timezone-entry.h"
#include <e-util/e-icon-factory.h>
@@ -68,6 +69,8 @@ static void e_timezone_entry_destroy (GtkObject *object);
static gboolean e_timezone_entry_mnemonic_activate (GtkWidget *widget,
gboolean group_cycling);
+static gboolean e_timezone_entry_focus (GtkWidget *widget,
+ GtkDirectionType direction);
static void on_entry_changed (GtkEntry *entry,
ETimezoneEntry *tentry);
static void on_button_clicked (GtkWidget *widget,
@@ -93,6 +96,7 @@ e_timezone_entry_class_init (ETimezoneEntryClass *class)
parent_class = g_type_class_peek_parent (class);
widget_class->mnemonic_activate = e_timezone_entry_mnemonic_activate;
+ widget_class->focus = e_timezone_entry_focus;
timezone_entry_signals[CHANGED] =
gtk_signal_new ("changed",
GTK_RUN_LAST,
@@ -115,6 +119,7 @@ e_timezone_entry_init (ETimezoneEntry *tentry)
ETimezoneEntryPrivate *priv;
GtkWidget *gtk_image;
GdkPixbuf *gdk_pixbuf;
+ AtkObject *a11y;
tentry->priv = priv = g_new0 (ETimezoneEntryPrivate, 1);
@@ -132,6 +137,10 @@ e_timezone_entry_init (ETimezoneEntry *tentry)
g_signal_connect (priv->button, "clicked", G_CALLBACK (on_button_clicked), tentry);
gtk_box_pack_start (GTK_BOX (tentry), priv->button, FALSE, FALSE, 6);
gtk_widget_show (priv->button);
+ a11y = gtk_widget_get_accessible (priv->button);
+ if (a11y != NULL) {
+ atk_object_set_name (a11y, _("Timezone Button"));
+ }
gdk_pixbuf = e_icon_factory_get_icon ("stock_timezone", E_ICON_SIZE_BUTTON);
gtk_image = gtk_image_new_from_pixbuf (gdk_pixbuf);
@@ -314,3 +323,34 @@ e_timezone_entry_mnemonic_activate (GtkWidget *widget,
return TRUE;
}
+static gboolean
+e_timezone_entry_focus (GtkWidget *widget, GtkDirectionType direction)
+{
+ ETimezoneEntry *tentry;
+
+ tentry = E_TIMEZONE_ENTRY (widget);
+
+ if (direction == GTK_DIR_TAB_FORWARD) {
+ if (GTK_WIDGET_HAS_FOCUS (tentry->priv->entry))
+ gtk_widget_grab_focus (tentry->priv->button);
+ else if (GTK_WIDGET_HAS_FOCUS (tentry->priv->button))
+ return FALSE;
+ else if (GTK_WIDGET_VISIBLE (tentry->priv->entry))
+ gtk_widget_grab_focus (tentry->priv->entry);
+ else
+ gtk_widget_grab_focus (tentry->priv->button);
+ } else if (direction == GTK_DIR_TAB_BACKWARD) {
+ if (GTK_WIDGET_HAS_FOCUS (tentry->priv->entry))
+ return FALSE;
+ else if (GTK_WIDGET_HAS_FOCUS (tentry->priv->button)) {
+ if (GTK_WIDGET_VISIBLE (tentry->priv->entry))
+ gtk_widget_grab_focus (tentry->priv->entry);
+ else
+ return FALSE;
+ } else
+ gtk_widget_grab_focus (tentry->priv->button);
+ } else
+ return FALSE;
+ return TRUE;
+}
+
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 7802fa5da1..27d9eb28c8 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -3499,9 +3499,9 @@ e_week_view_do_cursor_key_up (EWeekView *week_view)
if (week_view->selection_start_day <= 0)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day--;
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3512,9 +3512,9 @@ e_week_view_do_cursor_key_down (EWeekView *week_view)
week_view->selection_start_day >= 6)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day++;
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3524,9 +3524,9 @@ e_week_view_do_cursor_key_left (EWeekView *week_view)
if (week_view->selection_start_day == -1)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day = map_left[week_view->selection_start_day];
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3536,9 +3536,9 @@ e_week_view_do_cursor_key_right (EWeekView *week_view)
if (week_view->selection_start_day == -1)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day = map_right[week_view->selection_start_day];
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3548,9 +3548,9 @@ e_month_view_do_cursor_key_up (EWeekView *week_view)
if (week_view->selection_start_day < 7)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day -= 7;
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3563,9 +3563,9 @@ e_month_view_do_cursor_key_down (EWeekView *week_view)
week_view->selection_start_day >= (weeks_shown - 1) * 7)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day += 7;
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3575,9 +3575,9 @@ e_month_view_do_cursor_key_left (EWeekView *week_view)
if (week_view->selection_start_day <= 0)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day--;
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}
@@ -3590,9 +3590,9 @@ e_month_view_do_cursor_key_right (EWeekView *week_view)
week_view->selection_start_day >= weeks_shown * 7 - 1)
return;
- g_signal_emit_by_name (week_view, "selected_time_changed");
week_view->selection_start_day++;
week_view->selection_end_day = week_view->selection_start_day;
+ g_signal_emit_by_name (week_view, "selected_time_changed");
gtk_widget_queue_draw (week_view->main_canvas);
}