diff --git a/gtk/gtkfontchooser.c b/gtk/gtkfontchooser.c index 9eedd2d259..493d3c625f 100644 --- a/gtk/gtkfontchooser.c +++ b/gtk/gtkfontchooser.c @@ -351,11 +351,74 @@ spin_change_cb (GtkAdjustment *adjustment, gpointer data) desc = pango_context_get_font_description (gtk_widget_get_pango_context (priv->preview)); pango_font_description_set_size (desc, priv->size); - gtk_widget_modify_font (priv->preview, desc); + gtk_widget_override_font (priv->preview, desc); gtk_widget_queue_draw (priv->preview); } +void +set_range_marks (GtkWidget* size_slider, gint* sizes, gint length) +{ + gint i; + + gtk_scale_clear_marks (GTK_SCALE (size_slider)); + + for (i=0; imodel), &iter, path)) + return; + + gtk_tree_model_get (GTK_TREE_MODEL (priv->model), &iter, + FACE_COLUMN, &face, + FAMILY_NAME_COLUMN, &family_name, + -1); + + if (!face && !family_name) + return; + if (!face) + { + g_free (family_name); + return; + } + if (!family_name) + { + g_object_unref ((gpointer)face); + return; + } + + desc = pango_font_face_describe (face); + pango_font_description_set_size (desc, priv->size); + gtk_widget_override_font (priv->preview, desc); + + + /* Free resources */ + g_free (family_name); + g_object_unref ((gpointer)face); + pango_font_description_free(desc); + gtk_tree_path_free (path); +} + static void gtk_font_selection_init (GtkFontSelection *fontsel) { @@ -414,7 +477,7 @@ gtk_font_selection_init (GtkFontSelection *fontsel) gtk_box_pack_start (GTK_BOX (preview_and_size), scrolled_win, FALSE, FALSE, 0); /* Setting the size requests for various widgets */ - gtk_widget_set_size_request (fontsel, -1, 460); + gtk_widget_set_size_request (GTK_WIDGET (fontsel), -1, 460); gtk_widget_set_size_request (scrolled_win, -1, PREVIEW_HEIGHT); gtk_widget_set_size_request (priv->preview, -1, PREVIEW_HEIGHT - 6); @@ -476,6 +539,10 @@ gtk_font_selection_init (GtkFontSelection *fontsel) g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->size_spin))), "value-changed", G_CALLBACK (spin_change_cb), (gpointer)priv); priv->ignore_slider = FALSE; + + /* Font selection callbacks */ + g_signal_connect (G_OBJECT (priv->family_face_list), "cursor-changed", + G_CALLBACK (cursor_changed_cb), (gpointer)priv); gtk_widget_pop_composite_child(); }