app: GimpContainerEntry's text is red when not a valid item.

If the selected item in a GimpContainerEntry is invalid, or else when the entry
is being updated, the text shows in red.
This commit is contained in:
Jehan
2013-04-27 11:26:04 +09:00
parent 77d1b49edc
commit 64fe3af1a9

View File

@ -285,7 +285,22 @@ gimp_container_entry_select_item (GimpContainerView *view,
gimp_container_entry_changed,
view);
gtk_entry_set_text (entry, iter ? gimp_object_get_name (viewable) : "");
if (iter)
{
gtk_widget_modify_text (GTK_WIDGET (entry), GTK_STATE_NORMAL, NULL);
}
else
{
/* The selected item does not exist. */
GdkColor gdk_red;
gdk_red.red = 65535;
gdk_red.green = 0;
gdk_red.blue = 0;
gtk_widget_modify_text (GTK_WIDGET (entry), GTK_STATE_NORMAL, &gdk_red);
}
gtk_entry_set_text (entry, viewable? gimp_object_get_name (viewable) : "");
g_signal_handlers_unblock_by_func (entry,
gimp_container_entry_changed,
@ -332,7 +347,21 @@ gimp_container_entry_changed (GtkEntry *entry,
object = gimp_container_get_child_by_name (container, text);
if (object)
gimp_container_view_item_selected (view, GIMP_VIEWABLE (object));
{
gtk_widget_modify_text (GTK_WIDGET (entry), GTK_STATE_NORMAL, NULL);
gimp_container_view_item_selected (view, GIMP_VIEWABLE (object));
}
else
{
/* While editing the entry, contents shows in red for non-existent item. */
GdkColor gdk_red;
gdk_red.red = 65535;
gdk_red.green = 0;
gdk_red.blue = 0;
gtk_widget_modify_text (GTK_WIDGET (entry), GTK_STATE_NORMAL, &gdk_red);
}
}
static void