summaryrefslogtreecommitdiff
path: root/gtk/gtkcalendar.c
diff options
context:
space:
mode:
authorMathias Hasselmann <hasselmm@src.gnome.org>2008-01-17 16:42:04 +0000
committerMathias Hasselmann <hasselmm@src.gnome.org>2008-01-17 16:42:04 +0000
commit188894d18e17169cb56710e7b97abcdd996f36eb (patch)
tree164bd99f5a9e6323f328116f95528ed4785129dc /gtk/gtkcalendar.c
parent7265ed4fc8832eeb7ef0c6c775f5d0d213886e3a (diff)
downloadgtk+-188894d18e17169cb56710e7b97abcdd996f36eb.tar.gz
Change GtkCalendarDetailFunc to return newly allocated string. (#339540)
* gtk/gtkcalendar.c: Release the memory returned by the detail_func. * gtk/gtkcalendar.h: Remove G_CONST_RETURN from GtkCalendarDetailFunc. * tests/testcalendar.c: Duplicate calendar details before returning. svn path=/trunk/; revision=19382
Diffstat (limited to 'gtk/gtkcalendar.c')
-rw-r--r--gtk/gtkcalendar.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c
index b9cdfa9b9b..269125f1db 100644
--- a/gtk/gtkcalendar.c
+++ b/gtk/gtkcalendar.c
@@ -1672,7 +1672,7 @@ gtk_calendar_unrealize (GtkWidget *widget)
(* GTK_WIDGET_CLASS (gtk_calendar_parent_class)->unrealize) (widget);
}
-static G_CONST_RETURN gchar*
+static gchar*
gtk_calendar_get_detail (GtkCalendar *calendar,
gint row,
gint column)
@@ -1709,7 +1709,7 @@ gtk_calendar_query_tooltip (GtkWidget *widget,
{
GtkCalendarPrivate *priv = GTK_CALENDAR_GET_PRIVATE (widget);
GtkCalendar *calendar = GTK_CALENDAR (widget);
- const gchar *detail = NULL;
+ gchar *detail = NULL;
GdkRectangle day_rect;
if (priv->main_win)
@@ -1736,6 +1736,8 @@ gtk_calendar_query_tooltip (GtkWidget *widget,
gtk_tooltip_set_tip_area (tooltip, &day_rect);
gtk_tooltip_set_markup (tooltip, detail);
+ g_free (detail);
+
return TRUE;
}
@@ -1914,7 +1916,7 @@ gtk_calendar_size_request (GtkWidget *widget,
for (r = 0; r < 6; r++)
for (c = 0; c < 7; c++)
{
- const gchar *detail = gtk_calendar_get_detail (calendar, r, c);
+ gchar *detail = gtk_calendar_get_detail (calendar, r, c);
if (detail)
{
@@ -1935,6 +1937,7 @@ gtk_calendar_size_request (GtkWidget *widget,
max_detail_height = MAX (max_detail_height, logical_rect.height);
g_free (markup);
+ g_free (detail);
}
}
}
@@ -2429,7 +2432,7 @@ calendar_paint_day (GtkCalendar *calendar,
GtkCalendarPrivate *priv = GTK_CALENDAR_GET_PRIVATE (calendar);
cairo_t *cr;
GdkColor *text_color;
- const gchar *detail;
+ gchar *detail;
gchar buffer[32];
gint day;
gint x_loc, y_loc;
@@ -2619,6 +2622,7 @@ calendar_paint_day (GtkCalendar *calendar,
g_object_unref (layout);
cairo_destroy (cr);
+ g_free (detail);
}
static void