diff options
-rw-r--r-- | calendar/ChangeLog | 10 | ||||
-rw-r--r-- | calendar/gui/e-cal-list-view.c | 11 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 10 |
3 files changed, 29 insertions, 2 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 040625a5b7..eef8c9ac11 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,13 @@ +2004-10-19 JP Rosevear <jpr@novell.com> + + * gui/gnome-cal.c (connect_list_view_focus): listen to the canvas + for focus events + (setup_widgets): listen for listen view selection changes + + * gui/e-cal-list-view.c (setup_e_table): listen for the cursor to + move + (e_cal_list_view_cursor_change_cb): indicate the selection changed + 2004-10-19 Harish Krishnaswamy <kharish@novell.com> * gui/calendar-component.c (create_new_event): diff --git a/calendar/gui/e-cal-list-view.c b/calendar/gui/e-cal-list-view.c index 8e13003b12..2b244fbc41 100644 --- a/calendar/gui/e-cal-list-view.c +++ b/calendar/gui/e-cal-list-view.c @@ -86,6 +86,7 @@ static gboolean e_cal_list_view_on_table_double_click (GtkWidget *table, gint GdkEvent *event, gpointer data); static gboolean e_cal_list_view_on_table_right_click (GtkWidget *table, gint row, gint col, GdkEvent *event, gpointer data); +static void e_cal_list_view_cursor_change_cb (ETable *etable, gint row, gpointer data); G_DEFINE_TYPE (ECalListView, e_cal_list_view, E_TYPE_CALENDAR_VIEW); @@ -284,6 +285,8 @@ setup_e_table (ECalListView *cal_list_view) "double_click", G_CALLBACK (e_cal_list_view_on_table_double_click), cal_list_view); g_signal_connect (e_table_scrolled_get_table (cal_list_view->table_scrolled), "right-click", G_CALLBACK (e_cal_list_view_on_table_right_click), cal_list_view); + g_signal_connect_after (e_table_scrolled_get_table (cal_list_view->table_scrolled), + "cursor_change", G_CALLBACK (e_cal_list_view_cursor_change_cb), cal_list_view); /* Attach and show widget */ @@ -401,6 +404,14 @@ e_cal_list_view_on_table_right_click (GtkWidget *table, gint row, gint col, GdkE return TRUE; } +static void +e_cal_list_view_cursor_change_cb (ETable *etable, gint row, gpointer data) +{ + ECalListView *cal_list_view = E_CAL_LIST_VIEW (data); + + g_signal_emit_by_name (cal_list_view, "selection_changed"); +} + static gboolean e_cal_list_view_get_selected_time_range (ECalendarView *cal_view, time_t *start_time, time_t *end_time) { diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index 79cdda1ca3..8b51f895a6 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -935,9 +935,13 @@ connect_week_view_focus (GnomeCalendar *gcal, EWeekView *wv) static void connect_list_view_focus (GnomeCalendar *gcal, ECalListView *lv) { - g_signal_connect (lv, "focus_in_event", + ETable *etable; + + etable = e_table_scrolled_get_table (lv->table_scrolled); + + g_signal_connect (etable->table_canvas, "focus_in_event", G_CALLBACK (calendar_focus_change_cb), gcal); - g_signal_connect (lv, "focus_out_event", + g_signal_connect (etable->table_canvas, "focus_out_event", G_CALLBACK (calendar_focus_change_cb), gcal); } @@ -1318,6 +1322,8 @@ setup_widgets (GnomeCalendar *gcal) e_calendar_view_set_calendar (E_CALENDAR_VIEW (priv->list_view), gcal); e_calendar_view_set_timezone (E_CALENDAR_VIEW (priv->list_view), priv->zone); + g_signal_connect (priv->list_view, "selection_changed", + G_CALLBACK (view_selection_changed_cb), gcal); connect_list_view_focus (gcal, E_CAL_LIST_VIEW (priv->list_view)); |