aboutsummaryrefslogtreecommitdiffstats
path: root/calendar
diff options
context:
space:
mode:
Diffstat (limited to 'calendar')
-rw-r--r--calendar/ChangeLog8
-rw-r--r--calendar/gui/e-day-view.c19
2 files changed, 20 insertions, 7 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 1527f8b628..4ba7876416 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,5 +1,13 @@
2008-12-09 Milan Crha <mcrha@redhat.com>
+ ** Fix for bug #333224
+
+ * gui/e-day-view.c: (e_day_view_on_text_item_event): Sanitize returned
+ values from 'e_day_view_convert_position_in_main_canvas', because it
+ can let the 'event_num' or 'day' set to -1, which means invalid value.
+
+2008-12-09 Milan Crha <mcrha@redhat.com>
+
** Part of fix for bug #563669
* gui/dialogs/recurrence-page.glade:
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index 7d54f83cbf..331b3a4132 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -5864,6 +5864,15 @@ e_day_view_on_text_item_event (GnomeCanvasItem *item,
ECalendarViewPosition pos;
gboolean main_canvas = TRUE;
+ if (day_view->editing_event_num != -1)
+ break;
+
+ if (day_view->resize_event_num != -1)
+ break;
+
+ if (day_view->drag_event_num != -1)
+ break;
+
/* Convert the coords to the main canvas window, or return if the
window is not found. */
if (!e_day_view_convert_event_coords (day_view, (GdkEvent*) event,
@@ -5892,15 +5901,11 @@ e_day_view_on_text_item_event (GnomeCanvasItem *item,
}
if (pos == E_CALENDAR_VIEW_POS_OUTSIDE)
- return FALSE;
-
- if (day_view->editing_event_num != -1)
break;
- if (day_view->resize_event_num != -1)
- break;
-
- if (day_view->drag_event_num != -1)
+ /* even when returns position inside, or other, then the day and/or event_num
+ can be unknown, thus check for this here, otherwise it will crash later */
+ if (day == -1 || event_num == -1)
break;
pevent = tooltip_get_view_event (day_view, day, event_num);