X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk%2Fgtkfontchooserwidget.c;h=7454a35186a98fa2db42f83a5161f329a69c5cbe;hb=5e2c23214564f7dcc687fa8467020eeb6b9407a9;hp=8aa9fbf7c2ae4102818b7c2175da339eb8ea8651;hpb=2353d60b8a7a4f2ba619a4226fb7df04f126334a;p=~andy%2Fgtk diff --git a/gtk/gtkfontchooserwidget.c b/gtk/gtkfontchooserwidget.c index 8aa9fbf7c..7454a3518 100644 --- a/gtk/gtkfontchooserwidget.c +++ b/gtk/gtkfontchooserwidget.c @@ -30,6 +30,7 @@ #include "gtkbox.h" #include "gtkcellrenderertext.h" #include "gtkentry.h" +#include "gtksearchentry.h" #include "gtkgrid.h" #include "gtkfontchooser.h" #include "gtkfontchooserutils.h" @@ -242,55 +243,13 @@ gtk_font_chooser_widget_refilter_font_list (GtkFontChooserWidget *fontchooser) } static void -text_changed_cb (GtkEntry *entry, - GParamSpec *pspec, +text_changed_cb (GtkEntry *entry, + GParamSpec *pspec, GtkFontChooserWidget *fc) { - GtkFontChooserWidgetPrivate *priv = fc->priv; - const gchar *text; - - text = gtk_entry_get_text (entry); - - if (text == NULL || text[0] == '\0') - { - GIcon *icon; - - icon = g_themed_icon_new_with_default_fallbacks ("edit-find-symbolic"); - g_object_set (G_OBJECT (priv->search_entry), - "secondary-icon-gicon", icon, - "secondary-icon-activatable", FALSE, - "secondary-icon-sensitive", FALSE, - NULL); - g_object_unref (icon); - } - else - { - if (!gtk_entry_get_icon_activatable (GTK_ENTRY (priv->search_entry), GTK_ENTRY_ICON_SECONDARY)) - { - GIcon *icon; - - icon = g_themed_icon_new_with_default_fallbacks ("edit-clear-symbolic"); - g_object_set (G_OBJECT (priv->search_entry), - "secondary-icon-gicon", icon, - "secondary-icon-activatable", TRUE, - "secondary-icon-sensitive", TRUE, - NULL); - g_object_unref (icon); - } - } - gtk_font_chooser_widget_refilter_font_list (fc); } -static void -icon_press_cb (GtkEntry *entry, - GtkEntryIconPosition pos, - GdkEvent *event, - gpointer user_data) -{ - gtk_entry_set_text (entry, ""); -} - static void size_change_cb (GtkAdjustment *adjustment, gpointer user_data) @@ -507,7 +466,6 @@ row_deleted_cb (GtkTreeModel *model, static void gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser) { - GIcon *icon; GtkFontChooserWidgetPrivate *priv; GtkWidget *scrolled_win; GtkWidget *grid; @@ -526,7 +484,7 @@ gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser) gtk_widget_push_composite_child (); /* Creating fundamental widgets for the private struct */ - priv->search_entry = gtk_entry_new (); + priv->search_entry = gtk_search_entry_new (); priv->family_face_list = gtk_tree_view_new (); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (priv->family_face_list), FALSE); priv->preview = gtk_entry_new (); @@ -596,22 +554,11 @@ gtk_font_chooser_widget_init (GtkFontChooserWidget *fontchooser) gtk_entry_set_text (GTK_ENTRY (priv->preview), pango_language_get_sample_string (NULL)); - /* Set search icon and place holder text */ - icon = g_themed_icon_new_with_default_fallbacks ("edit-find-symbolic"); - g_object_set (G_OBJECT (priv->search_entry), - "secondary-icon-gicon", icon, - "secondary-icon-activatable", FALSE, - "secondary-icon-sensitive", FALSE, - NULL); - g_object_unref (icon); - gtk_entry_set_placeholder_text (GTK_ENTRY (priv->search_entry), _("Search font name")); - /** Callback connections **/ + /* Callback connections */ g_signal_connect (priv->search_entry, "notify::text", G_CALLBACK (text_changed_cb), fontchooser); - g_signal_connect (priv->search_entry, - "icon-press", G_CALLBACK (icon_press_cb), NULL); g_signal_connect (gtk_range_get_adjustment (GTK_RANGE (priv->size_slider)), "value-changed", G_CALLBACK (size_change_cb), fontchooser); @@ -1115,7 +1062,13 @@ gtk_font_chooser_widget_ensure_selection (GtkFontChooserWidget *fontchooser) &filter_iter, &priv->font_iter)) { + GtkTreePath *path = gtk_tree_model_get_path (GTK_TREE_MODEL (priv->filter_model), + &filter_iter); + gtk_tree_selection_select_iter (selection, &filter_iter); + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (priv->family_face_list), + path, NULL, FALSE, 0.0, 0.0); + gtk_tree_path_free (path); } else {