Fixes NB#131187, no kinetic scrolling in message viewer
authorSergio Villar Senin <svillar@igalia.com>
Tue, 11 Aug 2009 09:44:40 +0000 (11:44 +0200)
committerSergio Villar Senin <svillar@igalia.com>
Tue, 11 Aug 2009 10:21:20 +0000 (12:21 +0200)
src/hildon2/modest-msg-view-window.c
src/widgets/modest-gtkhtml-mime-part-view.c
src/widgets/modest-gtkhtml-msg-view.c

index ee85710..dd1003b 100644 (file)
@@ -505,6 +505,7 @@ init_window (ModestMsgViewWindow *obj)
        modest_msg_view_set_shadow_type (MODEST_MSG_VIEW (priv->msg_view), GTK_SHADOW_NONE);
        main_vbox = gtk_vbox_new  (FALSE, 6);
        priv->main_scroll = hildon_pannable_area_new ();
+        g_object_set (G_OBJECT (priv->main_scroll), "mov-mode", HILDON_MOVEMENT_MODE_BOTH, NULL);
        gtk_container_add (GTK_CONTAINER (priv->main_scroll), priv->msg_view);
        gtk_box_pack_start (GTK_BOX(main_vbox), priv->main_scroll, TRUE, TRUE, 0);
        gtk_container_add   (GTK_CONTAINER(obj), main_vbox);
index a160174..5a11459 100644 (file)
@@ -287,6 +287,11 @@ modest_gtkhtml_mime_part_view_init (ModestGtkhtmlMimePartView *self)
        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);
+       /* 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
index 514322d..72f0f66 100644 (file)
@@ -597,6 +597,8 @@ set_hadjustment_values (ModestGtkhtmlMsgView *self,
 {
        GtkAllocation view_allocation;
        GtkAdjustment *hadj = get_hadjustment (self);
+       gint full_width = 0;
+       ModestGtkhtmlMsgViewPrivate *priv = MODEST_GTKHTML_MSG_VIEW_GET_PRIVATE (self);
 
        get_view_allocation (self, &view_allocation);
        hadj->page_size = view_allocation.width;
@@ -606,11 +608,20 @@ set_hadjustment_values (ModestGtkhtmlMsgView *self,
        hadj->lower = 0;
        hadj->upper = view_allocation.width;
 
+       /* Get the real width of the embedded html */
+       if (priv->html_scroll && GTK_WIDGET_VISIBLE(priv->html_scroll)) {
+               GtkAdjustment *html_hadj;
+               html_hadj = gtk_scrolled_window_get_hadjustment (GTK_SCROLLED_WINDOW (priv->html_scroll));
+               full_width += html_hadj->upper;
+       }
+
+       hadj->upper = MAX (view_allocation.width, full_width);
+
        reclamp_adjustment (hadj, value_changed);
 
 }
 
-static void 
+static void
 set_vadjustment_values (ModestGtkhtmlMsgView *self,
                        gboolean *value_changed)
 {