aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/gncal-full-day.c19
-rw-r--r--calendar/gui/gnome-cal.c2
-rw-r--r--calendar/gui/year-view.c3
3 files changed, 18 insertions, 6 deletions
diff --git a/calendar/gui/gncal-full-day.c b/calendar/gui/gncal-full-day.c
index a9c157c172..eac1d3fddc 100644
--- a/calendar/gui/gncal-full-day.c
+++ b/calendar/gui/gncal-full-day.c
@@ -433,7 +433,7 @@ child_set_pos (GncalFullDay *fullday, Child *child, int x, int y, int width, int
}
static struct layout_row *
-layout_get_rows (GncalFullDay *fullday)
+layout_get_rows (GncalFullDay *fullday, int *rowcount)
{
struct layout_row *rows;
int max_i;
@@ -444,6 +444,7 @@ layout_get_rows (GncalFullDay *fullday)
get_tm_range (fullday, fullday->lower, fullday->upper, NULL, NULL, NULL, &f_rows);
+ *rowcount = f_rows;
rows = g_new0 (struct layout_row, f_rows);
max_i = 0;
@@ -467,6 +468,16 @@ layout_get_rows (GncalFullDay *fullday)
}
static void
+layout_kill_rows (struct layout_row *rows, int f_rows)
+{
+ int i;
+
+ for (i = 0; i < f_rows; i++)
+ g_free (rows [i].slots);
+ g_free (rows);
+}
+
+static void
layout_get_child_intersections (Child *child, struct layout_row *rows, int *min, int *max)
{
int i, n;
@@ -573,9 +584,9 @@ layout_children (GncalFullDay *fullday)
struct layout_row *rows;
GList *children;
GtkWidget *widget;
- int left_x;
+ int left_x, rowcount;
- rows = layout_get_rows (fullday);
+ rows = layout_get_rows (fullday, &rowcount);
widget = GTK_WIDGET (fullday);
@@ -584,7 +595,7 @@ layout_children (GncalFullDay *fullday)
for (children = fullday->children; children; children = children->next)
layout_child (fullday, children->data, rows, left_x);
- g_free (rows);
+ layout_kill_rows (rows, rowcount);
}
guint
diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c
index 710a9033b9..6be4eb3f1e 100644
--- a/calendar/gui/gnome-cal.c
+++ b/calendar/gui/gnome-cal.c
@@ -83,7 +83,7 @@ setup_widgets (GnomeCalendar *gcal)
gcal->notebook = gtk_notebook_new ();
gcal->week_view = gncal_week_view_new (gcal, now);
- gcal->year_view = gncal_year_view_new ();
+ gcal->year_view = gncal_year_view_new (now);
gcal->task_view = tasks_create (gcal);
setup_day_view (gcal);
diff --git a/calendar/gui/year-view.c b/calendar/gui/year-view.c
index d4c2d218df..a3ae3ce647 100644
--- a/calendar/gui/year-view.c
+++ b/calendar/gui/year-view.c
@@ -101,7 +101,8 @@ gncal_year_view_new (int year)
(gpointer *) yview);
my_tm.tm_mon = i;
- strftime(monthbuff, 40, "%B", &my_tm);
+ my_tm.tm_year = year;
+ strftime(monthbuff, sizeof (monthbuff)-1, "%B", &my_tm);
label = gtk_label_new(monthbuff);
gtk_container_add(GTK_CONTAINER(frame), vbox);