Queue a draw event in open_html
[claws.git] / src / plugins / litehtml_viewer / lh_viewer.c
index bf6435bb3f2c05614d4d52673ddf98758a812454..7fee13e4799dfcc9ca705090099abf30742dae20 100644 (file)
@@ -88,13 +88,14 @@ static void lh_show_mimepart(MimeViewer *_viewer, const gchar *infile,
        LHViewer *viewer = (LHViewer *)_viewer;
        gchar *string = procmime_get_part_as_string(partinfo, TRUE);
        gchar *utf8 = NULL;
+       const gchar *charset;
 
        if (string == NULL) {
                g_warning("LH: couldn't get MIME part file\n");
                return;
        }
 
-       gchar *charset = procmime_mimeinfo_get_parameter(partinfo, "charset");
+       charset = procmime_mimeinfo_get_parameter(partinfo, "charset");
        if (charset != NULL && g_ascii_strcasecmp("utf-8", charset) != 0) {
                gsize length;
                GError *error = NULL;
@@ -103,6 +104,7 @@ static void lh_show_mimepart(MimeViewer *_viewer, const gchar *infile,
                if (error) {
                        g_warning("LH: failed mimepart conversion to UTF-8: %s", error->message);
                        g_free(string);
+                       g_error_free(error);
                        return;
                }
                debug_print("LH: successfully converted %" G_GSIZE_FORMAT " bytes\n", length);
@@ -138,6 +140,31 @@ static void lh_print_viewer (MimeViewer *_viewer)
     lh_widget_print(viewer->widget);    
 }
 
+
+static gboolean lh_scroll_page(MimeViewer *_viewer, gboolean up)
+{
+       LHViewer *viewer = (LHViewer *)_viewer;
+       GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment(
+                                       GTK_SCROLLED_WINDOW(lh_widget_get_widget(viewer->widget)));
+
+       if (viewer->widget == NULL)
+               return FALSE;
+
+       return gtkutils_scroll_page(lh_widget_get_widget(viewer->widget), vadj, up);
+}
+
+static void lh_scroll_one_line(MimeViewer *_viewer, gboolean up)
+{
+       LHViewer *viewer = (LHViewer *)_viewer;
+       GtkAdjustment *vadj = gtk_scrolled_window_get_vadjustment(
+                                       GTK_SCROLLED_WINDOW(lh_widget_get_widget(viewer->widget)));
+
+       if (viewer->widget == NULL)
+               return;
+
+       gtkutils_scroll_one_line(lh_widget_get_widget(viewer->widget), vadj, up);
+}
+
 /***************************************************************/
 MimeViewer *lh_viewer_create()
 {
@@ -152,8 +179,9 @@ MimeViewer *lh_viewer_create()
 
        viewer->mimeviewer.clear_viewer = lh_clear_viewer;
        viewer->mimeviewer.destroy_viewer = lh_destroy_viewer;
-       
-       viewer->mimeviewer.print = lh_print_viewer;
+
+       viewer->mimeviewer.scroll_page = lh_scroll_page;
+       viewer->mimeviewer.scroll_one_line = lh_scroll_one_line;
 
        viewer->vbox = gtk_vbox_new(FALSE, 0);