entrycompletion: set_property() should call property setters

gtk_entry_completion_set_property() was setting many properties by
directly modifying priv values, bypassing notification invocation and
possibly another actions done by gtk_completion_entry_set_xxx ()
functions.  Fix by invoking set_xxx() instead of setting the property
value directly.

The real bug observerd was that setting text-column property using
g_object_set() caused SIGFPE later when entry completion was about to
appear.  gtk_entry_completion_set_text_column () apparently does way
more important things than just setting priv->text_column member.

https://bugzilla.gnome.org/show_bug.cgi?id=673693
This commit is contained in:
Pavel Holejsovsky 2012-03-23 07:09:02 +01:00
parent df37446f9b
commit 331bba1ad6

View File

@ -651,27 +651,33 @@ gtk_entry_completion_set_property (GObject *object,
break;
case PROP_TEXT_COLUMN:
priv->text_column = g_value_get_int (value);
gtk_entry_completion_set_text_column (completion,
g_value_get_int (value));
break;
case PROP_INLINE_COMPLETION:
priv->inline_completion = g_value_get_boolean (value);
gtk_entry_completion_set_inline_completion (completion,
g_value_get_boolean (value));
break;
case PROP_POPUP_COMPLETION:
priv->popup_completion = g_value_get_boolean (value);
gtk_entry_completion_set_popup_completion (completion,
g_value_get_boolean (value));
break;
case PROP_POPUP_SET_WIDTH:
priv->popup_set_width = g_value_get_boolean (value);
gtk_entry_completion_set_popup_set_width (completion,
g_value_get_boolean (value));
break;
case PROP_POPUP_SINGLE_MATCH:
priv->popup_single_match = g_value_get_boolean (value);
gtk_entry_completion_set_popup_single_match (completion,
g_value_get_boolean (value));
break;
case PROP_INLINE_SELECTION:
priv->inline_selection = g_value_get_boolean (value);
gtk_entry_completion_set_inline_selection (completion,
g_value_get_boolean (value));
break;
case PROP_CELL_AREA: