* Fixes NB#90500, fixes a memory leak
[modest] / src / widgets / modest-recpt-editor.c
index 9e7e06b..4ef9fc9 100644 (file)
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
 
+/* FIXNE: we should have no maemo-deps in widgets/ */
+#ifndef MODEST_TOOLKIT_GTK
+#include "maemo/modest-hildon-includes.h"
+#endif /*!MODEST_TOOLKIT_GTK*/
+
+
 static GObjectClass *parent_class = NULL;
 
 #define RECIPIENT_TAG_ID "recpt-id"
@@ -147,7 +153,7 @@ modest_recpt_editor_add_recipients (ModestRecptEditor *recpt_editor, const gchar
        ModestRecptEditorPrivate *priv;
        GtkTextBuffer *buffer = NULL;
        GtkTextIter iter;
-       gchar * string_to_add;
+       gchar *string_to_add;
 
        g_return_if_fail (MODEST_IS_RECPT_EDITOR (recpt_editor));
        priv = MODEST_RECPT_EDITOR_GET_PRIVATE (recpt_editor);
@@ -167,13 +173,14 @@ modest_recpt_editor_add_recipients (ModestRecptEditor *recpt_editor, const gchar
 
        g_signal_handlers_block_by_func (buffer, modest_recpt_editor_on_insert_text, recpt_editor);
 
-       gtk_text_buffer_insert (buffer, &iter, recipients, -1);
+       gtk_text_buffer_insert (buffer, &iter, string_to_add, -1);
        
        g_signal_handlers_unblock_by_func (buffer, modest_recpt_editor_on_insert_text, recpt_editor);
 
        if (GTK_WIDGET_REALIZED (recpt_editor))
                gtk_widget_queue_resize (GTK_WIDGET (recpt_editor));
 
+       g_free (string_to_add);
 }
 
 void 
@@ -550,7 +557,12 @@ modest_recpt_editor_on_insert_text (GtkTextBuffer *buffer,
        if (!is_valid_insert (text, len)) {
                gchar *new_text = create_valid_text (text, len);
                g_signal_stop_emission_by_name (G_OBJECT (buffer), "insert-text");
+               g_signal_handlers_block_by_func (buffer, modest_recpt_editor_on_insert_text, 
+                                                editor);
                gtk_text_buffer_insert (buffer, location, new_text, -1);
+               g_signal_handlers_unblock_by_func (buffer, 
+                                                  modest_recpt_editor_on_insert_text, 
+                                                  editor);
                g_free (new_text);
                return;
        }