From 915b442dc1eb7856c783db75d0525c19cbaea5c3 Mon Sep 17 00:00:00 2001 From: Alberto Ruiz Date: Thu, 28 Apr 2011 01:20:44 +0100 Subject: [PATCH] GtkFontChooser: Fix segmentation fault in deprecated size list population --- gtk/gtkfontchooser.c | 20 +++++++++++++------- tests/testfontselection.c | 7 ++++--- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/gtk/gtkfontchooser.c b/gtk/gtkfontchooser.c index 2fc0aa40b..4fb70e8db 100644 --- a/gtk/gtkfontchooser.c +++ b/gtk/gtkfontchooser.c @@ -442,7 +442,7 @@ set_range_marks (GtkFontSelectionPrivate *priv, { GtkTreeIter iter; - g_string_printf ("%d", sizes[i]); + g_string_printf (size_str, "%d", sizes[i]); gtk_scale_add_mark (GTK_SCALE (size_slider), (gdouble) sizes[i], @@ -471,7 +471,7 @@ cursor_changed_cb (GtkTreeView *treeview, gpointer data) GtkTreeIter iter; GtkTreePath *path = gtk_tree_path_new (); - GtkFontSelection *fontsel = (GtkFontSelection*)data; + GtkFontSelection *fontsel = (GtkFontSelection*)data; gtk_tree_view_get_cursor (treeview, &path, NULL); @@ -1032,8 +1032,10 @@ gtk_font_selection_get_family_list (GtkFontSelection *fontsel) { GtkFontSelectionPrivate *priv = fontsel->priv; g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL); + if (!priv->font_list) + initialize_deprecated_widgets (fontsel); - return NULL; + return priv->font_list; } /** @@ -1052,8 +1054,10 @@ gtk_font_selection_get_face_list (GtkFontSelection *fontsel) { GtkFontSelectionPrivate *priv = fontsel->priv; g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL); + if (!priv->face_list) + initialize_deprecated_widgets (fontsel); - return NULL; + return priv->face_list; } /** @@ -1091,8 +1095,10 @@ gtk_font_selection_get_size_list (GtkFontSelection *fontsel) { GtkFontSelectionPrivate *priv = fontsel->priv; g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL); + if (!priv->size_list) + initialize_deprecated_widgets (fontsel); - return NULL; + return priv->size_list; } /** @@ -1132,7 +1138,7 @@ gtk_font_selection_get_family (GtkFontSelection *fontsel) { g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL); - return NULL; + return fontsel->priv->family; } /** @@ -1153,7 +1159,7 @@ gtk_font_selection_get_face (GtkFontSelection *fontsel) { g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), NULL); - return NULL; + return fontsel->priv->face; } /** diff --git a/tests/testfontselection.c b/tests/testfontselection.c index 0b721f5b5..42efdc14f 100644 --- a/tests/testfontselection.c +++ b/tests/testfontselection.c @@ -35,13 +35,14 @@ main (int argc, char *argv[]) dialog = gtk_font_selection_dialog_new (NULL); window = gtk_window_new (GTK_WINDOW_TOPLEVEL); + gtk_widget_set_size_request (window, 300, 300); vbox = gtk_vbox_new (TRUE, 6); gtk_container_add (GTK_CONTAINER (window), vbox); fontsel = gtk_font_selection_dialog_get_font_selection (GTK_FONT_SELECTION_DIALOG (dialog)); - gtk_container_add (GTK_CONTAINER (window), gtk_font_selection_get_size_list (GTK_FONT_SELECTION (fontsel))); - gtk_container_add (GTK_CONTAINER (window), gtk_font_selection_get_family_list (GTK_FONT_SELECTION (fontsel))); - gtk_container_add (GTK_CONTAINER (window), gtk_font_selection_get_face_list (GTK_FONT_SELECTION (fontsel))); + gtk_container_add (GTK_CONTAINER (vbox), gtk_font_selection_get_size_list (GTK_FONT_SELECTION (fontsel))); + gtk_container_add (GTK_CONTAINER (vbox), gtk_font_selection_get_family_list (GTK_FONT_SELECTION (fontsel))); + gtk_container_add (GTK_CONTAINER (vbox), gtk_font_selection_get_face_list (GTK_FONT_SELECTION (fontsel))); gtk_widget_show_all (window); -- 2.43.2