2006-08-08 [colin] 2.4.0cvs33
authorColin Leroy <colin@colino.net>
Tue, 8 Aug 2006 16:16:13 +0000 (16:16 +0000)
committerColin Leroy <colin@colino.net>
Tue, 8 Aug 2006 16:16:13 +0000 (16:16 +0000)
* src/procmime.c
Fix bug #998 (last attachment is not accessible)
Bad RFC interpretation on multipart close-delimiters
* src/mimeview.c
* src/mimeview.h
* src/gtk/gtkvscrollbutton.c
* src/gtk/gtkvscrollbutton.h
Make attachments list wheel-scrollable

ChangeLog
PATCHSETS
configure.ac
src/gtk/gtkvscrollbutton.c
src/gtk/gtkvscrollbutton.h
src/mimeview.c
src/mimeview.h
src/procmime.c

index 339ba82088496ab199be84e92854bf950cc36252..28c8780f8d119bb6f3c3b73d124e7db3f9df2728 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2006-08-08 [colin]     2.4.0cvs33
+
+       * src/procmime.c
+               Fix bug #998 (last attachment is not accessible)
+               Bad RFC interpretation on multipart close-delimiters
+       * src/mimeview.c
+       * src/mimeview.h
+       * src/gtk/gtkvscrollbutton.c
+       * src/gtk/gtkvscrollbutton.h
+               Make attachments list wheel-scrollable
+
 2006-08-07 [colin]     2.4.0cvs32
 
        * src/gtk/gtkaspell.c
index 675e11e72a36dc597747801827e9094d53536a0b..91ed39a82c8e8470b95752e850677844acc27778 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.115.2.98 -r 1.115.2.99 src/main.c;  ) > 2.4.0cvs30.patchset
 ( cvs diff -u -r 1.382.2.297 -r 1.382.2.298 src/compose.c;  ) > 2.4.0cvs31.patchset
 ( cvs diff -u -r 1.9.2.41 -r 1.9.2.42 src/gtk/gtkaspell.c;  ) > 2.4.0cvs32.patchset
+( cvs diff -u -r 1.83.2.76 -r 1.83.2.77 src/mimeview.c;  cvs diff -u -r 1.20.2.11 -r 1.20.2.12 src/mimeview.h;  cvs diff -u -r 1.49.2.78 -r 1.49.2.79 src/procmime.c;  cvs diff -u -r 1.5.2.3 -r 1.5.2.4 src/gtk/gtkvscrollbutton.c;  cvs diff -u -r 1.3 -r 1.4 src/gtk/gtkvscrollbutton.h;  ) > 2.4.0cvs33.patchset
index 9f57dca2ce984ac7e793a767d207f62e5dcad96b..4173d9358694d98fae76e1cb2bd6eed10de35b28 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=4
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=32
+EXTRA_VERSION=33
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 083661d3c2381b8d41a44e8596126fa97de2f09c..3b275f1b261ccf2399ffe2a6934a74154eaca3f9 100644 (file)
@@ -75,7 +75,7 @@ static gint gtk_vscrollbutton_button_release  (GtkWidget        *widget,
                                                 GdkEventButton   *event,
                                                 GtkVScrollbutton *scrollbutton);
 
-static gint gtk_vscrollbutton_scroll           (GtkVScrollbutton *scrollbutton);
+gint gtk_vscrollbutton_scroll          (GtkVScrollbutton *scrollbutton);
 
 static gboolean gtk_vscrollbutton_timer_1st_time(GtkVScrollbutton *scrollbutton);
 
@@ -240,7 +240,7 @@ static gint gtk_vscrollbutton_button_release(GtkWidget *widget,
     return TRUE;
 }
 
-static gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
+gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
 {
     gfloat new_value;
     gint return_val;
index 99d22314e3e85883f2f430f4d866277352fe3c47..7d168cde55d0eab3aa48d709db92691cfb7e47e6 100644 (file)
@@ -74,6 +74,7 @@ extern "C" {
 
 GtkType    gtk_vscrollbutton_get_type  (void);
 GtkWidget* gtk_vscrollbutton_new       (GtkAdjustment *adjustment);
+gint      gtk_vscrollbutton_scroll     (GtkVScrollbutton *scrollbutton);
 
 #ifdef __cplusplus
 }
index 5ee7a17a08163634c47abbaa3ff7402cfaf60473..b4ea2f21a8a631833cb3dc93d5146856282f3222 100644 (file)
@@ -113,6 +113,9 @@ static void mimeview_drag_data_get      (GtkWidget    *widget,
                                         guint             time,
                                         MimeView         *mimeview);
 
+static gboolean mimeview_scrolled      (GtkWidget      *widget,
+                                        GdkEventScroll *event,
+                                        MimeView       *mimeview);
 static void mimeview_display_as_text   (MimeView       *mimeview);
 static void mimeview_save_as           (MimeView       *mimeview);
 static void mimeview_save_all          (MimeView       *mimeview);
@@ -246,6 +249,9 @@ MimeView *mimeview_create(MainWindow *mainwin)
        scrollbutton = gtk_vscrollbutton_new(gtk_layout_get_vadjustment(GTK_LAYOUT(icon_scroll)));
        gtk_widget_show(scrollbutton);
 
+       g_signal_connect(G_OBJECT(icon_scroll), "scroll_event",
+                        G_CALLBACK(mimeview_scrolled), mimeview);
+
        mime_toggle = gtk_toggle_button_new();
        gtk_widget_show(mime_toggle);
        arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
@@ -311,7 +317,7 @@ MimeView *mimeview_create(MainWindow *mainwin)
        mimeview->oldsize       = 60;
        mimeview->mime_toggle   = mime_toggle;
        mimeview->siginfoview   = siginfoview;
-
+       mimeview->scrollbutton  = scrollbutton;
        mimeview->target_list   = gtk_target_list_new(mimeview_mime_types, 1); 
        
        mimeviews = g_slist_prepend(mimeviews, mimeview);
@@ -1108,6 +1114,19 @@ static gint mimeview_button_pressed(GtkWidget *widget, GdkEventButton *event,
        return FALSE;
 }
 
+static gboolean mimeview_scrolled(GtkWidget *widget, GdkEventScroll *event,
+                                   MimeView *mimeview)
+{
+       GtkVScrollbutton *scrollbutton = (GtkVScrollbutton *)mimeview->scrollbutton;
+       if (event->direction == GDK_SCROLL_UP) {
+               scrollbutton->scroll_type = GTK_SCROLL_STEP_BACKWARD;
+       } else {
+               scrollbutton->scroll_type = GTK_SCROLL_STEP_FORWARD;
+       }
+       gtk_vscrollbutton_scroll(scrollbutton);
+       return TRUE;
+}
+
 /* from gdkevents.c */
 #define DOUBLE_CLICK_TIME 250
 
@@ -2114,7 +2133,7 @@ static void icon_scroll_size_allocate_cb(GtkWidget *widget,
        gtk_layout_set_size(GTK_LAYOUT(mimeview->icon_scroll), 
                            GTK_LAYOUT(mimeview->icon_scroll)->width, 
                            MAX(vbox_size->height, layout_size->height));
-       adj->step_increment = 5;
+       adj->step_increment = 10;
 }
 
 static void icon_list_create(MimeView *mimeview, MimeInfo *mimeinfo)
index b3ad486d45cdc97c5235f2de2ab339a2e1cebcb7..f9a067bbfd05e8a97673af6217e7c99026ee7d35 100644 (file)
@@ -68,7 +68,7 @@ struct _MimeView
        GtkWidget *icon_vbox;
        GtkWidget *icon_mainbox;
        GtkWidget *mime_toggle;
-
+       GtkWidget *scrollbutton;
        MimeViewType type;
 
        GtkWidget *popupmenu;
index 329594936bf1b23c8d4ad2dd96165e9480ef81e6..ac4e8537a78063bcb464d19ddc7862cfa108b549 100644 (file)
@@ -1385,7 +1385,7 @@ void procmime_parse_multipart(MimeInfo *mimeinfo)
        }
        fseek(fp, mimeinfo->offset, SEEK_SET);
        while ((p = fgets(buf, sizeof(buf), fp)) != NULL && result == 0) {
-               if (ftell(fp) > (mimeinfo->offset + mimeinfo->length))
+               if (ftell(fp) - 1 > (mimeinfo->offset + mimeinfo->length))
                        break;
 
                if (IS_BOUNDARY(buf, boundary, boundary_len)) {