Index: plugins/itip-formatter/itip-formatter.c =================================================================== --- plugins/itip-formatter/itip-formatter.c.orig +++ plugins/itip-formatter/itip-formatter.c @@ -1860,6 +1860,26 @@ idle_open_cb (gpointer data) return FALSE; } +static gboolean +is_gw_item (icalcomponent *icalcomp) +{ + icalproperty *prop; + + prop = icalcomponent_get_first_property (icalcomp, ICAL_X_PROPERTY); + while (prop) { + const char *x_name, *x_val; + + x_name = icalproperty_get_x_name (prop); + x_val = icalproperty_get_x (prop); + if (!strcmp (x_name, "X-GWRECORDID")) { + return TRUE; + } + + prop = icalcomponent_get_next_property (icalcomp, ICAL_X_PROPERTY); + } + return FALSE; +} + static void view_response_cb (GtkWidget *widget, ItipViewResponse response, gpointer data) { @@ -1906,7 +1926,7 @@ view_response_cb (GtkWidget *widget, Iti if (status) { e_cal_component_rescan (pitip->comp); flag = update_item (pitip, response); - if (save_schedules && flag) + if (save_schedules && flag && is_gw_item (pitip->ical_comp)) delete_invitation_from_cache = TRUE; } break; @@ -1916,7 +1936,7 @@ view_response_cb (GtkWidget *widget, Iti if (status) { e_cal_component_rescan (pitip->comp); flag = update_item (pitip, response); - if (save_schedules && flag) + if (save_schedules && flag && is_gw_item (pitip->ical_comp)) delete_invitation_from_cache = TRUE; } @@ -1935,7 +1955,7 @@ view_response_cb (GtkWidget *widget, Iti if (status) { e_cal_component_rescan (pitip->comp); flag = update_item (pitip, response); - if (save_schedules && flag) + if (save_schedules && flag && is_gw_item (pitip->ical_comp)) delete_invitation_from_cache = TRUE; } break;