aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog12
-rw-r--r--calendar/gui/e-day-view-main-item.c13
-rw-r--r--calendar/gui/e-day-view.c24
-rw-r--r--calendar/gui/e-week-view-event-item.c13
-rw-r--r--calendar/gui/e-week-view.c12
5 files changed, 62 insertions, 12 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index 637d158ad9..a1a505e0c6 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,15 @@
+2002-07-02 Rodrigo Moya <rodrigo@ximian.com>
+
+ Fixes #16034
+
+ * gui/e-day-view.c (e_day_view_reshape_long_event):
+ (e_day_view_reshape_day_event):
+ * gui/e-day-view-main-item.c (e_day_view_main_item_draw_day_event):
+ * gui/e-week-view.c (e_week_view_reshape_event_span):
+ * gui/e-week-view-event-item.c (e_week_view_event_item_draw_icons):
+ Don't assume all categories have icons when allocating space for
+ the icons.
+
2002-07-02 Ettore Perazzoli <ettore@ximian.com>
* gui/component-factory.c (add_creatable_item): New arg @tooltip.
diff --git a/calendar/gui/e-day-view-main-item.c b/calendar/gui/e-day-view-main-item.c
index f7f86c6660..f28e0c6a2b 100644
--- a/calendar/gui/e-day-view-main-item.c
+++ b/calendar/gui/e-day-view-main-item.c
@@ -604,7 +604,15 @@ e_day_view_main_item_draw_day_event (EDayViewMainItem *dvmitem,
cal_component_get_categories_list (comp, &categories_list);
- num_icons += g_slist_length (categories_list);
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
+
+ category = (char *) elem->data;
+ if (e_categories_config_get_icon_for (category, &pixmap, &mask))
+ num_icons++;
+ }
if (num_icons != 0) {
if (item_h >= (E_DAY_VIEW_ICON_HEIGHT + E_DAY_VIEW_ICON_Y_PAD)
@@ -683,8 +691,7 @@ e_day_view_main_item_draw_day_event (EDayViewMainItem *dvmitem,
GdkBitmap *mask = NULL;
category = (char *) elem->data;
- e_categories_config_get_icon_for (category, &pixmap, &mask);
- if (pixmap == NULL)
+ if (!e_categories_config_get_icon_for (category, &pixmap, &mask))
continue;
max_icon_w = item_x + item_w - icon_x
diff --git a/calendar/gui/e-day-view.c b/calendar/gui/e-day-view.c
index d305190352..6e445dcaaf 100644
--- a/calendar/gui/e-day-view.c
+++ b/calendar/gui/e-day-view.c
@@ -5082,7 +5082,7 @@ e_day_view_reshape_long_event (EDayView *day_view,
}
if (show_icons) {
- GSList *categories_list;
+ GSList *categories_list, *elem;
if (cal_component_has_alarms (comp))
num_icons++;
@@ -5092,7 +5092,15 @@ e_day_view_reshape_long_event (EDayView *day_view,
num_icons++;
cal_component_get_categories_list (comp, &categories_list);
- num_icons += g_slist_length (categories_list);
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
+
+ category = (char *) elem->data;
+ if (e_categories_config_get_icon_for (category, &pixmap, &mask))
+ num_icons++;
+ }
cal_component_free_categories_list (categories_list);
}
@@ -5221,7 +5229,7 @@ e_day_view_reshape_day_event (EDayView *day_view,
if (day_view->resize_drag_pos == E_DAY_VIEW_POS_NONE
|| day_view->resize_event_day != day
|| day_view->resize_event_num != event_num) {
- GSList *categories_list;
+ GSList *categories_list, *elem;
if (cal_component_has_alarms (comp))
num_icons++;
@@ -5231,7 +5239,15 @@ e_day_view_reshape_day_event (EDayView *day_view,
num_icons++;
cal_component_get_categories_list (comp, &categories_list);
- num_icons += g_slist_length (categories_list);
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
+
+ category = (char *) elem->data;
+ if (e_categories_config_get_icon_for (category, &pixmap, &mask))
+ num_icons++;
+ }
cal_component_free_categories_list (categories_list);
}
diff --git a/calendar/gui/e-week-view-event-item.c b/calendar/gui/e-week-view-event-item.c
index 4d532be5bf..f680be8f0d 100644
--- a/calendar/gui/e-week-view-event-item.c
+++ b/calendar/gui/e-week-view-event-item.c
@@ -589,7 +589,15 @@ e_week_view_event_item_draw_icons (EWeekViewEventItem *wveitem,
}
cal_component_get_categories_list (comp, &categories_list);
- num_icons += g_slist_length (categories_list);
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
+
+ category = (char *) elem->data;
+ if (e_categories_config_get_icon_for (category, &pixmap, &mask))
+ num_icons++;
+ }
icon_x_inc = E_WEEK_VIEW_ICON_WIDTH + E_WEEK_VIEW_ICON_X_PAD;
@@ -636,8 +644,7 @@ e_week_view_event_item_draw_icons (EWeekViewEventItem *wveitem,
GdkBitmap *mask = NULL;
category = (char *) elem->data;
- e_categories_config_get_icon_for (category, &pixmap, &mask);
- if (pixmap == NULL)
+ if (!e_categories_config_get_icon_for (category, &pixmap, &mask))
continue;
if (icon_x + E_WEEK_VIEW_ICON_WIDTH <= x2) {
diff --git a/calendar/gui/e-week-view.c b/calendar/gui/e-week-view.c
index 514558cc58..22b4623f13 100644
--- a/calendar/gui/e-week-view.c
+++ b/calendar/gui/e-week-view.c
@@ -2614,7 +2614,7 @@ e_week_view_reshape_event_span (EWeekView *week_view,
/* Calculate how many icons we need to show. */
num_icons = 0;
if (show_icons) {
- GSList *categories_list;
+ GSList *categories_list, *elem;
if (cal_component_has_alarms (comp))
num_icons++;
@@ -2624,7 +2624,15 @@ e_week_view_reshape_event_span (EWeekView *week_view,
num_icons++;
cal_component_get_categories_list (comp, &categories_list);
- num_icons += g_slist_length (categories_list);
+ for (elem = categories_list; elem; elem = elem->next) {
+ char *category;
+ GdkPixmap *pixmap = NULL;
+ GdkBitmap *mask = NULL;
+
+ category = (char *) elem->data;
+ if (e_categories_config_get_icon_for (category, &pixmap, &mask))
+ num_icons++;
+ }
cal_component_free_categories_list (categories_list);
}