Blame SOURCES/evolution-3.28.5-ecalendaritem-settings.patch

a7a0a8
diff -up evolution-3.28.5/src/e-util/e-calendar-item.c.ecalendaritem-settings evolution-3.28.5/src/e-util/e-calendar-item.c
a7a0a8
--- evolution-3.28.5/src/e-util/e-calendar-item.c.ecalendaritem-settings	2018-07-30 15:37:05.000000000 +0200
a7a0a8
+++ evolution-3.28.5/src/e-util/e-calendar-item.c	2020-09-30 15:16:45.798634705 +0200
a7a0a8
@@ -45,6 +45,7 @@ static const gint e_calendar_item_days_i
a7a0a8
   e_calendar_item_days_in_month[month] + (((month) == 1 \
a7a0a8
   && ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))) ? 1 : 0)
a7a0a8
 
a7a0a8
+static void	e_calendar_item_constructed	(GObject *object);
a7a0a8
 static void	e_calendar_item_dispose		(GObject *object);
a7a0a8
 static void	e_calendar_item_get_property	(GObject *object,
a7a0a8
 						 guint property_id,
a7a0a8
@@ -264,6 +265,7 @@ e_calendar_item_class_init (ECalendarIte
a7a0a8
 	GnomeCanvasItemClass *item_class;
a7a0a8
 
a7a0a8
 	object_class = G_OBJECT_CLASS (class);
a7a0a8
+	object_class->constructed = e_calendar_item_constructed;
a7a0a8
 	object_class->dispose = e_calendar_item_dispose;
a7a0a8
 	object_class->get_property = e_calendar_item_get_property;
a7a0a8
 	object_class->set_property = e_calendar_item_set_property;
a7a0a8
@@ -637,6 +639,16 @@ e_calendar_item_init (ECalendarItem *cal
a7a0a8
 }
a7a0a8
 
a7a0a8
 static void
a7a0a8
+e_calendar_item_constructed (GObject *object)
a7a0a8
+{
a7a0a8
+	ECalendarItem *calitem = E_CALENDAR_ITEM (object);
a7a0a8
+
a7a0a8
+	G_OBJECT_CLASS (e_calendar_item_parent_class)->constructed (object);
a7a0a8
+
a7a0a8
+	e_extensible_load_extensions (E_EXTENSIBLE (calitem));
a7a0a8
+}
a7a0a8
+
a7a0a8
+static void
a7a0a8
 e_calendar_item_dispose (GObject *object)
a7a0a8
 {
a7a0a8
 	ECalendarItem *calitem;
a7a0a8
@@ -787,28 +799,32 @@ e_calendar_item_set_property (GObject *o
a7a0a8
 		dvalue = g_value_get_double (value);
a7a0a8
 		if (calitem->x1 != dvalue) {
a7a0a8
 			calitem->x1 = dvalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_Y1:
a7a0a8
 		dvalue = g_value_get_double (value);
a7a0a8
 		if (calitem->y1 != dvalue) {
a7a0a8
 			calitem->y1 = dvalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_X2:
a7a0a8
 		dvalue = g_value_get_double (value);
a7a0a8
 		if (calitem->x2 != dvalue) {
a7a0a8
 			calitem->x2 = dvalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_Y2:
a7a0a8
 		dvalue = g_value_get_double (value);
a7a0a8
 		if (calitem->y2 != dvalue) {
a7a0a8
 			calitem->y2 = dvalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_FONT_DESC:
a7a0a8
@@ -816,21 +832,24 @@ e_calendar_item_set_property (GObject *o
a7a0a8
 		if (calitem->font_desc)
a7a0a8
 			pango_font_description_free (calitem->font_desc);
a7a0a8
 		calitem->font_desc = pango_font_description_copy (font_desc);
a7a0a8
-		gnome_canvas_item_request_update (item);
a7a0a8
+		if (item->canvas)
a7a0a8
+			gnome_canvas_item_request_update (item);
a7a0a8
 		return;
a7a0a8
 	case PROP_WEEK_NUMBER_FONT_DESC:
a7a0a8
 		font_desc = g_value_get_boxed (value);
a7a0a8
 		if (calitem->week_number_font_desc)
a7a0a8
 			pango_font_description_free (calitem->week_number_font_desc);
a7a0a8
 		calitem->week_number_font_desc = pango_font_description_copy (font_desc);
a7a0a8
-		gnome_canvas_item_request_update (item);
a7a0a8
+		if (item->canvas)
a7a0a8
+			gnome_canvas_item_request_update (item);
a7a0a8
 		return;
a7a0a8
 	case PROP_MINIMUM_ROWS:
a7a0a8
 		ivalue = g_value_get_int (value);
a7a0a8
 		ivalue = MAX (1, ivalue);
a7a0a8
 		if (calitem->min_rows != ivalue) {
a7a0a8
 			calitem->min_rows = ivalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_MINIMUM_COLUMNS:
a7a0a8
@@ -838,35 +857,40 @@ e_calendar_item_set_property (GObject *o
a7a0a8
 		ivalue = MAX (1, ivalue);
a7a0a8
 		if (calitem->min_cols != ivalue) {
a7a0a8
 			calitem->min_cols = ivalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_MAXIMUM_ROWS:
a7a0a8
 		ivalue = g_value_get_int (value);
a7a0a8
 		if (calitem->max_rows != ivalue) {
a7a0a8
 			calitem->max_rows = ivalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_MAXIMUM_COLUMNS:
a7a0a8
 		ivalue = g_value_get_int (value);
a7a0a8
 		if (calitem->max_cols != ivalue) {
a7a0a8
 			calitem->max_cols = ivalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_WEEK_START_DAY:
a7a0a8
 		ivalue = g_value_get_enum (value);
a7a0a8
 		if (calitem->week_start_day != ivalue) {
a7a0a8
 			calitem->week_start_day = ivalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_SHOW_WEEK_NUMBERS:
a7a0a8
 		bvalue = g_value_get_boolean (value);
a7a0a8
 		if (calitem->show_week_numbers != bvalue) {
a7a0a8
 			calitem->show_week_numbers = bvalue;
a7a0a8
-			gnome_canvas_item_request_update (item);
a7a0a8
+			if (item->canvas)
a7a0a8
+				gnome_canvas_item_request_update (item);
a7a0a8
 		}
a7a0a8
 		return;
a7a0a8
 	case PROP_KEEP_WDAYS_ON_WEEKNUM_CLICK:
a7a0a8
@@ -908,8 +932,6 @@ e_calendar_item_realize (GnomeCanvasItem
a7a0a8
 	calitem = E_CALENDAR_ITEM (item);
a7a0a8
 
a7a0a8
 	e_calendar_item_style_updated (GTK_WIDGET (item->canvas), calitem);
a7a0a8
-
a7a0a8
-	e_extensible_load_extensions (E_EXTENSIBLE (calitem));
a7a0a8
 }
a7a0a8
 
a7a0a8
 static void