summaryrefslogtreecommitdiff
path: root/gtk/gtkfontchooser.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2011-08-09 01:10:39 +0200
committerMatthias Clasen <mclasen@redhat.com>2011-08-15 18:57:57 -0400
commit97d26ac9c060f56e8787ddfb8eff778669710a15 (patch)
treeac0e6fb042ff431297964ba79d92f481a1dc7732 /gtk/gtkfontchooser.c
parenta18fab88a1238bb8136900649276a545e17a98fc (diff)
downloadgtk+-97d26ac9c060f56e8787ddfb8eff778669710a15.tar.gz
Simplify a few things
Adwaita seems to misrender focus on entries with margins, so use spacing instead. Also, don't use entry buffer unnecessarily.
Diffstat (limited to 'gtk/gtkfontchooser.c')
-rw-r--r--gtk/gtkfontchooser.c109
1 files changed, 49 insertions, 60 deletions
diff --git a/gtk/gtkfontchooser.c b/gtk/gtkfontchooser.c
index cfca2ae9e6..a6f2d9096d 100644
--- a/gtk/gtkfontchooser.c
+++ b/gtk/gtkfontchooser.c
@@ -248,49 +248,43 @@ gtk_font_chooser_get_property (GObject *object,
break;
}
}
+
static void
-deleted_text_cb (GtkEntryBuffer *buffer,
- guint position,
- guint n_chars,
- gpointer user_data)
+text_changed_cb (GtkEntry *entry,
+ GParamSpec *pspec,
+ GtkFontChooser *fc)
{
- GtkFontChooser *fc = (GtkFontChooser*)user_data;
- GtkFontChooserPrivate *priv = fc->priv;
- GtkWidget *entry = priv->search_entry;
+ GtkFontChooserPrivate *priv = fc->priv;
+ const gchar *text;
+
+ text = gtk_entry_get_text (entry);
- if (gtk_entry_buffer_get_length (buffer) == 0)
+ if (text == NULL || text[0] == '\0')
{
- GIcon *icon = g_themed_icon_new_with_default_fallbacks ("edit-find-symbolic");
- gtk_entry_set_icon_from_gicon (GTK_ENTRY (entry),
- GTK_ENTRY_ICON_SECONDARY,
- icon);
+ 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);
}
-
- gtk_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter));
-}
-
-static void
-inserted_text_cb (GtkEntryBuffer *buffer,
- guint position,
- gchar *chars,
- guint n_chars,
- gpointer user_data)
-{
- GtkFontChooser *fc = (GtkFontChooser*)user_data;
- GtkFontChooserPrivate *priv = fc->priv;
- GtkWidget *entry = priv->search_entry;
-
- if (g_strcmp0 (gtk_entry_get_icon_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY),
- "edit-clear-symbolic") != 0 ||
- g_strcmp0 (gtk_entry_get_icon_stock (GTK_ENTRY (entry), GTK_ENTRY_ICON_SECONDARY),
- GTK_STOCK_CLEAR) != 0)
+ else
{
- GIcon *icon = g_themed_icon_new_with_default_fallbacks ("edit-clear-symbolic");
- gtk_entry_set_icon_from_gicon (GTK_ENTRY (entry),
- GTK_ENTRY_ICON_SECONDARY,
- icon);
- g_object_unref (icon);
+ 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_tree_model_filter_refilter (GTK_TREE_MODEL_FILTER (priv->filter));
@@ -302,7 +296,7 @@ icon_press_cb (GtkEntry *entry,
GdkEvent *event,
gpointer user_data)
{
- gtk_entry_buffer_delete_text (gtk_entry_get_buffer (entry), 0, -1);
+ gtk_entry_set_text (entry, "");
}
static void
@@ -588,10 +582,8 @@ gtk_font_chooser_init (GtkFontChooser *fontchooser)
grid = gtk_grid_new ();
sub_grid = gtk_grid_new ();
- gtk_widget_set_margin_bottom (priv->search_entry, 6);
- gtk_widget_set_margin_bottom (scrolled_win, 6);
- gtk_widget_set_margin_bottom (priv->preview, 6);
- gtk_widget_set_margin_right (priv->size_slider, 6);
+ gtk_grid_set_column_spacing (GTK_GRID (grid), 6);
+ gtk_grid_set_row_spacing (GTK_GRID (sub_grid), 6);
gtk_grid_attach (GTK_GRID (grid), priv->search_entry, 0, 0, 3, 1);
gtk_grid_attach (GTK_GRID (grid), scrolled_win, 0, 1, 3, 1);
@@ -630,37 +622,34 @@ gtk_font_chooser_init (GtkFontChooser *fontchooser)
/* Set search icon and place holder text */
icon = g_themed_icon_new_with_default_fallbacks ("edit-find-symbolic");
- gtk_entry_set_icon_from_gicon (GTK_ENTRY (priv->search_entry),
- GTK_ENTRY_ICON_SECONDARY,
- icon);
+ 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 **/
- /* Connect to callback for the live search text entry */
- g_signal_connect (G_OBJECT (gtk_entry_get_buffer (GTK_ENTRY (priv->search_entry))),
- "deleted-text", G_CALLBACK (deleted_text_cb), fontchooser);
- g_signal_connect (G_OBJECT (gtk_entry_get_buffer (GTK_ENTRY (priv->search_entry))),
- "inserted-text", G_CALLBACK (inserted_text_cb), fontchooser);
- g_signal_connect (G_OBJECT (priv->search_entry),
+ 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);
- /* Size controls callbacks */
- g_signal_connect (G_OBJECT (gtk_range_get_adjustment (GTK_RANGE (priv->size_slider))),
+ g_signal_connect (gtk_range_get_adjustment (GTK_RANGE (priv->size_slider)),
"value-changed", G_CALLBACK (slider_change_cb), fontchooser);
- g_signal_connect (G_OBJECT (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->size_spin))),
+ g_signal_connect (gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (priv->size_spin)),
"value-changed", G_CALLBACK (spin_change_cb), fontchooser);
- /* Font selection callback */
- g_signal_connect (G_OBJECT (priv->family_face_list), "cursor-changed",
- G_CALLBACK (cursor_changed_cb), fontchooser);
+ g_signal_connect (priv->family_face_list, "cursor-changed",
+ G_CALLBACK (cursor_changed_cb), fontchooser);
/* Zoom on preview scroll*/
- g_signal_connect (G_OBJECT (priv->preview), "scroll-event",
- G_CALLBACK (zoom_preview_cb), fontchooser);
+ g_signal_connect (priv->preview, "scroll-event",
+ G_CALLBACK (zoom_preview_cb), fontchooser);
- g_signal_connect (G_OBJECT (priv->size_slider), "scroll-event",
+ g_signal_connect (priv->size_slider, "scroll-event",
G_CALLBACK (zoom_preview_cb), fontchooser);
set_range_marks (priv, priv->size_slider, (gint*)font_sizes, G_N_ELEMENTS (font_sizes));
@@ -674,7 +663,7 @@ gtk_font_chooser_init (GtkFontChooser *fontchooser)
*/
/* Set default focus */
- gtk_widget_pop_composite_child();
+ gtk_widget_pop_composite_child ();
}
/**