enum {
STOP_STREAMS_SIGNAL,
+ LIMIT_ERROR_SIGNAL,
LAST_SIGNAL
};
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+ signals[LIMIT_ERROR_SIGNAL] =
+ g_signal_new ("limit-error",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (ModestGtkhtmlMimePartViewClass,limit_error),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
}
static void
gtk_html_set_caret_mode (GTK_HTML(self), FALSE);
gtk_html_set_blocking (GTK_HTML(self), TRUE);
gtk_html_set_images_blocking (GTK_HTML(self), TRUE);
- gtk_container_set_border_width (GTK_CONTAINER (self), MODEST_MARGIN_DEFAULT);
+ /* We don't need this for Hildon2 as this widget will be most
+ likely inside pannable area */
+#ifndef MODEST_TOOLKIT_HILDON2
+ gtk_html_set_auto_panning (GTK_HTML (self), TRUE);
+#endif
#ifdef MODEST_TOOLKIT_HILDON2
#ifdef HAVE_GTK_HTML_SET_MAX_IMAGE_SIZE
#ifdef HAVE_GTK_HTML_SET_ALLOW_DND
gtk_html_set_allow_dnd (GTK_HTML(self), FALSE);
#endif
+#ifdef HAVE_GTK_HTML_SET_WORD_CHAR_WRAPPING
+ gtk_html_set_word_char_wrapping (GTK_HTML (self), TRUE);
+#endif
#endif
#ifdef HAVE_GTK_HTML_SET_DEFAULT_ENGINE
GError *err,
gpointer user_data)
{
- gboolean is_text = GPOINTER_TO_INT (user_data);
+ ModestGtkhtmlMimePartView *view = (ModestGtkhtmlMimePartView *) user_data;
- if (is_text) {
+ if (MODEST_IS_STREAM_TEXT_TO_HTML (stream)) {
if (tny_stream_write (stream, "\n", 1) == -1) {
g_warning ("failed to write CR in %s", __FUNCTION__);
}
+ if (modest_stream_text_to_html_limit_reached (MODEST_STREAM_TEXT_TO_HTML (stream))) {
+ g_signal_emit (G_OBJECT (view), signals[LIMIT_ERROR_SIGNAL], 0);
+ }
tny_stream_reset (stream);
+ } else {
+ if (modest_tny_stream_gtkhtml_limit_reached (MODEST_TNY_STREAM_GTKHTML (stream))) {
+ g_signal_emit (G_OBJECT (view), signals[LIMIT_ERROR_SIGNAL], 0);
+ }
}
tny_stream_close (stream);
}
tny_mime_part_decode_to_stream_async (TNY_MIME_PART (part),
tny_stream, decode_to_stream_cb,
- NULL, GINT_TO_POINTER (FALSE));
+ NULL, self);
g_object_unref (tny_stream);
}
tny_mime_part_decode_to_stream_async (TNY_MIME_PART (part),
text_to_html_stream, decode_to_stream_cb,
- NULL, GINT_TO_POINTER (TRUE));
+ NULL, self);
g_object_unref (G_OBJECT(text_to_html_stream));
g_object_unref (G_OBJECT(tny_stream));