diff --git a/src/gui/views/gcal-month-view-row.c b/src/gui/views/gcal-month-view-row.c index abd427b2..87aea581 100644 --- a/src/gui/views/gcal-month-view-row.c +++ b/src/gui/views/gcal-month-view-row.c @@ -28,6 +28,7 @@ #include "gcal-month-cell.h" #include "gcal-month-view-row.h" #include "gcal-range-tree.h" +#include "gcal-utils.h" typedef struct { @@ -764,3 +765,13 @@ gcal_month_view_row_update_style_for_date (GcalMonthViewRow *self, gcal_month_cell_set_different_month (GCAL_MONTH_CELL (self->day_cells[i]), different_month); } } + +GList* +gcal_month_view_row_get_children_by_uuid (GcalMonthViewRow *self, + GcalRecurrenceModType mod, + const gchar *uuid) +{ + g_assert (GCAL_IS_MONTH_VIEW_ROW (self)); + + return filter_children_by_uid_and_modtype (GTK_WIDGET (self), mod, uuid); +} diff --git a/src/gui/views/gcal-month-view-row.h b/src/gui/views/gcal-month-view-row.h index 8b8ec4df..2d4177ad 100644 --- a/src/gui/views/gcal-month-view-row.h +++ b/src/gui/views/gcal-month-view-row.h @@ -53,4 +53,8 @@ void gcal_month_view_row_remove_event (GcalMonthViewR void gcal_month_view_row_update_style_for_date (GcalMonthViewRow *self, GDateTime *date); +GList* gcal_month_view_row_get_children_by_uuid (GcalMonthViewRow *self, + GcalRecurrenceModType mod, + const gchar *uuid); + G_END_DECLS diff --git a/src/gui/views/gcal-month-view.c b/src/gui/views/gcal-month-view.c index 70472e1f..dcfb0118 100644 --- a/src/gui/views/gcal-month-view.c +++ b/src/gui/views/gcal-month-view.c @@ -1045,7 +1045,25 @@ gcal_month_view_get_children_by_uuid (GcalView *view, GcalRecurrenceModType mod, const gchar *uuid) { - return filter_children_by_uid_and_modtype (GTK_WIDGET (view), mod, uuid); + g_autoptr (GList) children = NULL; + GcalMonthView *self; + + GCAL_ENTRY; + + self = GCAL_MONTH_VIEW (view); + + for (guint i = 0; i < self->week_rows->len; i++) + { + g_autoptr (GList) row_children = NULL; + GcalMonthViewRow *row; + + row = g_ptr_array_index (self->week_rows, i); + row_children = gcal_month_view_row_get_children_by_uuid (row, mod, uuid); + + children = g_list_concat (children, g_steal_pointer (&row_children)); + } + + GCAL_RETURN (g_steal_pointer (&children)); } static GDateTime*