/* We only use the maximum size for write method, and even we
* ignore and fake as we would do a successfull read */
- if (priv->current_size > priv->max_size)
+ if (priv->current_size >= priv->max_size)
return n;
if (priv->current_size + n > priv->max_size)
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 */
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) {
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)
{