Modified webpage: now tinymail repository is in gitorious.
[modest] / src / widgets / modest-tny-stream-gtkhtml.c
index 3135889..3bdd6b3 100644 (file)
@@ -211,7 +211,13 @@ gtkhtml_write (TnyStream *self, const char *buffer, size_t n)
                        n = priv->max_size - priv->current_size;
        }
 
+       if (!g_main_context_is_owner (NULL))
+               gdk_threads_enter ();
+
        gtk_html_stream_write (priv->stream, buffer, n);
+
+       if (!g_main_context_is_owner (NULL))
+               gdk_threads_leave ();
        priv->current_size += n;
 
        return n; /* hmmm */
@@ -233,7 +239,14 @@ gtkhtml_close (TnyStream *self)
        priv = MODEST_TNY_STREAM_GTKHTML_GET_PRIVATE(self);
        
        if (priv->html && GTK_WIDGET_VISIBLE (priv->html)) {
+               if (!g_main_context_is_owner (NULL))
+                       gdk_threads_enter ();
+
                gtk_html_stream_close   (priv->stream, GTK_HTML_STREAM_OK);
+
+               if (!g_main_context_is_owner (NULL))
+                       gdk_threads_leave ();
+
        }
        priv->stream = NULL;
        if (priv->html && priv->stop_streams_id > 0) {
@@ -313,6 +326,17 @@ modest_tny_stream_gtkhtml_get_max_size (ModestTnyStreamGtkhtml *stream)
        return priv->max_size;
 }
 
+gboolean
+modest_tny_stream_gtkhtml_limit_reached (ModestTnyStreamGtkhtml *self)
+{
+       ModestTnyStreamGtkhtmlPrivate *priv;
+
+       g_return_val_if_fail (MODEST_IS_TNY_STREAM_GTKHTML (self), 0);
+       priv = MODEST_TNY_STREAM_GTKHTML_GET_PRIVATE (self);
+
+       return (priv->max_size > 0) && (priv->current_size >= priv->max_size);
+}
+
 static void
 modest_tny_stream_gtkhml_iface_init (gpointer g_iface, gpointer iface_data)
 {