{
GtkEntry *entry = GTK_ENTRY (widget);
GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry);
+ int text_min, text_nat;
int i;
gtk_widget_measure (priv->text,
orientation,
for_size,
- minimum, natural,
+ &text_min, &text_nat,
minimum_baseline, natural_baseline);
+ *minimum = text_min;
+ *natural = text_nat;
+
for (i = 0; i < MAX_ICONS; i++)
{
EntryIconInfo *icon_info = priv->icons[i];
*minimum = MAX (*minimum, prog_min);
*natural = MAX (*natural, prog_nat);
}
+
+ if (orientation == GTK_ORIENTATION_VERTICAL)
+ {
+ if (G_LIKELY (*minimum_baseline >= 0))
+ *minimum_baseline += (*minimum - text_min) / 2;
+ if (G_LIKELY (*natural_baseline >= 0))
+ *natural_baseline += (*natural - text_nat) / 2;
+ }
}
static void
int *natural_baseline)
{
GtkSearchEntry *entry = GTK_SEARCH_ENTRY (widget);
+ int text_min, text_nat;
int icon_min, icon_nat;
int spacing;
gtk_widget_measure (entry->entry,
orientation,
for_size,
- minimum, natural,
+ &text_min, &text_nat,
minimum_baseline, natural_baseline);
+ *minimum = text_min;
+ *natural = text_nat;
+
gtk_widget_measure (entry->search_icon,
GTK_ORIENTATION_HORIZONTAL,
-1,
{
*minimum = MAX (*minimum, icon_min);
*natural = MAX (*natural, icon_nat);
+
+ if (G_LIKELY (*minimum_baseline >= 0))
+ *minimum_baseline += (*minimum - text_min) / 2;
+ if (G_LIKELY (*natural_baseline >= 0))
+ *natural_baseline += (*natural - text_nat) / 2;
}
}