+set_logical_color (HildonEntry *entry)
+{
+ GdkColor color;
+ const gchar *colorname;
+ GtkWidget *widget = GTK_WIDGET (entry);
+ HildonEntryPrivate *priv = entry->priv;
+
+ colorname = priv->showing_placeholder ? "ReversedSecondaryTextColor" : "ReversedTextColor";
+
+ gtk_widget_ensure_style (widget);
+ if (gtk_style_lookup_color (widget->style, colorname, &color) == TRUE) {
+ priv->setting_style = TRUE;
+ gtk_widget_modify_text (widget, GTK_STATE_NORMAL, &color);
+ priv->setting_style = FALSE;
+ }
+}
+
+static void
+hildon_entry_style_set (GtkWidget *widget,
+ GtkStyle *previous_style)
+{
+ HildonEntry *entry = HILDON_ENTRY (widget);
+
+ if (GTK_WIDGET_CLASS (hildon_entry_parent_class)->style_set)
+ GTK_WIDGET_CLASS (hildon_entry_parent_class)->style_set (widget, previous_style);
+
+ /* Prevent infinite recursion when calling set_logical_font() and
+ * set_logical_color() */
+ if (entry->priv->setting_style)
+ return;
+
+ set_logical_color (entry);
+}
+
+static void