Give all search entries an icon

This was first requested for the search entry in
GtkDropDown, but it is better to be consistent and
give every search entry an icon.

Related: #3291
This commit is contained in:
Matthias Clasen 2020-10-23 12:19:31 -04:00
parent 10d7ccc8e0
commit fdb1fa4d08
3 changed files with 9 additions and 10 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -251,8 +251,6 @@ gtk_drop_down_dispose (GObject *object)
{ {
GtkDropDown *self = GTK_DROP_DOWN (object); GtkDropDown *self = GTK_DROP_DOWN (object);
gtk_widget_unparent (gtk_widget_get_first_child (self->search_entry));
g_clear_pointer (&self->popup, gtk_widget_unparent); g_clear_pointer (&self->popup, gtk_widget_unparent);
g_clear_pointer (&self->button, gtk_widget_unparent); g_clear_pointer (&self->button, gtk_widget_unparent);
@ -596,19 +594,11 @@ set_default_factory (GtkDropDown *self)
static void static void
gtk_drop_down_init (GtkDropDown *self) gtk_drop_down_init (GtkDropDown *self)
{ {
GtkWidget *icon;
g_type_ensure (GTK_TYPE_BUILTIN_ICON); g_type_ensure (GTK_TYPE_BUILTIN_ICON);
g_type_ensure (GTK_TYPE_LIST_ITEM_WIDGET); g_type_ensure (GTK_TYPE_LIST_ITEM_WIDGET);
gtk_widget_init_template (GTK_WIDGET (self)); gtk_widget_init_template (GTK_WIDGET (self));
icon = g_object_new (GTK_TYPE_IMAGE,
"accessible-role", GTK_ACCESSIBLE_ROLE_NONE,
"icon-name", "system-search-symbolic",
NULL);
gtk_widget_insert_after (icon, self->search_entry, NULL);
set_default_factory (self); set_default_factory (self);
} }

View File

@ -160,6 +160,8 @@ gtk_search_entry_finalize (GObject *object)
gtk_editable_finish_delegate (GTK_EDITABLE (entry)); gtk_editable_finish_delegate (GTK_EDITABLE (entry));
gtk_widget_unparent (gtk_widget_get_first_child (GTK_WIDGET (entry)));
g_clear_pointer (&entry->entry, gtk_widget_unparent); g_clear_pointer (&entry->entry, gtk_widget_unparent);
g_clear_pointer (&entry->icon, gtk_widget_unparent); g_clear_pointer (&entry->icon, gtk_widget_unparent);
@ -549,8 +551,15 @@ activate_cb (GtkText *text,
static void static void
gtk_search_entry_init (GtkSearchEntry *entry) gtk_search_entry_init (GtkSearchEntry *entry)
{ {
GtkWidget *icon;
GtkGesture *press; GtkGesture *press;
icon = g_object_new (GTK_TYPE_IMAGE,
"accessible-role", GTK_ACCESSIBLE_ROLE_NONE,
"icon-name", "system-search-symbolic",
NULL);
gtk_widget_set_parent (icon, GTK_WIDGET (entry));
entry->entry = gtk_text_new (); entry->entry = gtk_text_new ();
gtk_widget_set_parent (entry->entry, GTK_WIDGET (entry)); gtk_widget_set_parent (entry->entry, GTK_WIDGET (entry));
gtk_widget_set_hexpand (entry->entry, TRUE); gtk_widget_set_hexpand (entry->entry, TRUE);