glade3 r2028 - in trunk: . gladeui



Author: tvb
Date: Sat Nov 15 17:56:51 2008
New Revision: 2028
URL: http://svn.gnome.org/viewvc/glade3?rev=2028&view=rev

Log:

	* gladeui/glade-editor-property.[ch]: Fixed recursion in the eprops when
	updating values (due to exterior callers calling ->load() when the project
	changes for thier custom editors), this fixes glitches when editing multiline
	text entries.



Modified:
   trunk/ChangeLog
   trunk/gladeui/glade-editor-property.c
   trunk/gladeui/glade-editor-property.h

Modified: trunk/gladeui/glade-editor-property.c
==============================================================================
--- trunk/gladeui/glade-editor-property.c	(original)
+++ trunk/gladeui/glade-editor-property.c	Sat Nov 15 17:56:51 2008
@@ -123,7 +123,9 @@
 	g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
 
 	g_signal_handler_block (G_OBJECT (eprop->property), eprop->changed_id);
+	eprop->committing = TRUE;
 	glade_editor_property_commit (eprop, value);
+	eprop->committing = FALSE;
 	g_signal_handler_unblock (G_OBJECT (eprop->property), eprop->changed_id);
 }
 
@@ -1647,9 +1649,7 @@
 	gtk_text_buffer_get_end_iter (buffer, &end);
 
 	text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-
 	glade_eprop_text_changed_common (eprop, text, eprop->use_command);
-
 	g_free (text);
 }
 
@@ -3457,6 +3457,9 @@
 	g_return_if_fail (GLADE_IS_EDITOR_PROPERTY (eprop));
 	g_return_if_fail (property == NULL || GLADE_IS_PROPERTY (property));
 
+	if (eprop->committing)
+		return;
+
 	eprop->loading = TRUE;
 	GLADE_EDITOR_PROPERTY_GET_CLASS (eprop)->load (eprop, property);
 	eprop->loading = FALSE;

Modified: trunk/gladeui/glade-editor-property.h
==============================================================================
--- trunk/gladeui/glade-editor-property.h	(original)
+++ trunk/gladeui/glade-editor-property.h	Sat Nov 15 17:56:51 2008
@@ -109,6 +109,9 @@
 	gboolean            loading;        /* True during glade_editor_property_load calls, this
 					     * is used to avoid feedback from input widgets.
 					     */
+	gboolean            committing;     /* True while the editor property itself is applying
+					     * the property with glade_editor_property_commit_no_callback ().
+					     */
 
 	gboolean            use_command;    /* Whether we should use the glade command interface
 					     * or skip directly to GladeProperty interface.



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]