diff options
author | Mathias Hasselmann <hasselmm@src.gnome.org> | 2008-01-17 16:42:04 +0000 |
---|---|---|
committer | Mathias Hasselmann <hasselmm@src.gnome.org> | 2008-01-17 16:42:04 +0000 |
commit | 188894d18e17169cb56710e7b97abcdd996f36eb (patch) | |
tree | 164bd99f5a9e6323f328116f95528ed4785129dc /gtk/gtkcalendar.c | |
parent | 7265ed4fc8832eeb7ef0c6c775f5d0d213886e3a (diff) | |
download | gtk+-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.c | 12 |
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 |