NULL placeholder text should unset it (gtk3 compat)

Fixes: https://bugs.launchpad.net/midori/+bug/1043681
This commit is contained in:
Christian Dywan 2012-08-30 22:00:08 +02:00
parent a0d9517053
commit ebd0847a39
1 changed files with 9 additions and 13 deletions

View File

@ -71,17 +71,15 @@ gtk_entry_set_placeholder_text (GtkEntry* entry,
const gchar* default_text) const gchar* default_text)
{ {
/* Note: The default text initially overwrites any previous text */ /* Note: The default text initially overwrites any previous text */
gchar* old_value = g_object_get_data (G_OBJECT (entry), gchar* old_value = g_object_get_data (G_OBJECT (entry), "sokoke_default_text");
"sokoke_default_text"); g_object_set_data (G_OBJECT (entry), "sokoke_default_text", (gpointer)default_text);
g_object_set_data (G_OBJECT (entry), "sokoke_default_text",
(gpointer)default_text);
if (!old_value) if (default_text == NULL)
g_object_set_data (G_OBJECT (entry), "sokoke_has_default", GINT_TO_POINTER (0));
else if (!old_value)
{ {
g_object_set_data (G_OBJECT (entry), "sokoke_has_default", g_object_set_data (G_OBJECT (entry), "sokoke_has_default", GINT_TO_POINTER (1));
GINT_TO_POINTER (1)); sokoke_widget_set_pango_font_style (GTK_WIDGET (entry), PANGO_STYLE_ITALIC);
sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
PANGO_STYLE_ITALIC);
gtk_entry_set_text (entry, default_text); gtk_entry_set_text (entry, default_text);
g_signal_connect (entry, "drag-data-received", g_signal_connect (entry, "drag-data-received",
G_CALLBACK (sokoke_on_entry_drag_data_received), NULL); G_CALLBACK (sokoke_on_entry_drag_data_received), NULL);
@ -92,13 +90,11 @@ gtk_entry_set_placeholder_text (GtkEntry* entry,
} }
else if (!gtk_widget_has_focus (GTK_WIDGET (entry))) else if (!gtk_widget_has_focus (GTK_WIDGET (entry)))
{ {
gint has_default = GPOINTER_TO_INT ( gint has_default = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (entry), "sokoke_has_default"));
g_object_get_data (G_OBJECT (entry), "sokoke_has_default"));
if (has_default) if (has_default)
{ {
gtk_entry_set_text (entry, default_text); gtk_entry_set_text (entry, default_text);
sokoke_widget_set_pango_font_style (GTK_WIDGET (entry), sokoke_widget_set_pango_font_style (GTK_WIDGET (entry), PANGO_STYLE_ITALIC);
PANGO_STYLE_ITALIC);
} }
} }
} }