+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
( 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
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);
return TRUE;
}
-static gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
+gint gtk_vscrollbutton_scroll(GtkVScrollbutton *scrollbutton)
{
gfloat new_value;
gint return_val;
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);
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);
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);
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
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)
}
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)) {