aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/ea-cal-view-event.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui/ea-cal-view-event.c')
-rw-r--r--calendar/gui/ea-cal-view-event.c19
1 files changed, 15 insertions, 4 deletions
diff --git a/calendar/gui/ea-cal-view-event.c b/calendar/gui/ea-cal-view-event.c
index 230d7ca84f..b2bdc5c4b3 100644
--- a/calendar/gui/ea-cal-view-event.c
+++ b/calendar/gui/ea-cal-view-event.c
@@ -198,9 +198,17 @@ ea_cal_view_event_new (GObject *obj)
&event_num,
&span_num))
return NULL;
+
+ if (!is_array_index_in_bounds (week_view->events, event_num))
+ return NULL;
+
week_view_event = &g_array_index (week_view->events,
EWeekViewEvent,
event_num);
+
+ if (!is_array_index_in_bounds (week_view->spans, week_view_event->spans_index))
+ return NULL;
+
/* get the first span */
event_span = &g_array_index (week_view->spans,
EWeekViewEventSpan,
@@ -269,6 +277,8 @@ ea_cal_view_event_get_name (AtkObject *accessible)
if (!g_obj || !E_IS_TEXT (g_obj))
return NULL;
event = ea_calendar_helpers_get_cal_view_event_from (GNOME_CANVAS_ITEM(g_obj));
+ if (!is_comp_data_valid (event))
+ return NULL;
alarm_string = recur_string = meeting_string = "";
if (event && event->comp_data) {
@@ -445,6 +455,7 @@ ea_cal_view_get_extents (AtkComponent *component,
ECalendarView *cal_view;
gint item_x, item_y, item_w, item_h;
GtkWidget *canvas = NULL;
+ GdkWindow *window;
g_return_if_fail (EA_IS_CAL_VIEW_EVENT (component));
@@ -509,8 +520,8 @@ ea_cal_view_get_extents (AtkComponent *component,
if (!canvas)
return;
- gdk_window_get_origin (canvas->window,
- &x_window, &y_window);
+ window = gtk_widget_get_window (canvas);
+ gdk_window_get_origin (window, &x_window, &y_window);
gnome_canvas_get_scroll_offsets (GNOME_CANVAS (canvas), &scroll_x, &scroll_y);
*x = item_x + x_window - scroll_x;
@@ -519,10 +530,10 @@ ea_cal_view_get_extents (AtkComponent *component,
*height = item_h;
if (coord_type == ATK_XY_WINDOW) {
- GdkWindow *window;
gint x_toplevel, y_toplevel;
- window = gdk_window_get_toplevel (GTK_WIDGET (cal_view)->window);
+ window = gtk_widget_get_window (GTK_WIDGET (cal_view));
+ window = gdk_window_get_toplevel (window);
gdk_window_get_origin (window, &x_toplevel, &y_toplevel);
*x -= x_toplevel;