+2002-01-29
+
+ * src/mimeview.c: fixed multiple dialog / moving by correcting
+ button / key event processing.
+ * src/mimeview.[ch]
+ src/textview.c: pass some key press events to MimeView in MIME
+ mode.
+ * src/prefs_filter.c: fixed a bug that didn't set the order of
+ rules correctly.
+
2002-01-28
* src/mainwindow.c
and 'On exit'.
* src/importldif.c: imp_ldif_delete_event(): fixed segfault when
closing the dialog with window manager (in more appropriate way).
+ * src/imageview.[ch]
+ src/messageview.c
+ src/mimeview.c: fixed wrong scrolling position when switching
+ between text and image parts. Also free the unrequired image
+ (thanks to Sergey Vlasov).
+ * src/prefs_common.c: disabled 'Go to inbox after receiving new mail'
+ by default.
2002-01-28
+2002-01-29 [paul] 0.7.0claws39
+
+ * sync with sylpheed 0.7.0cvs22
+ see ChangeLog entries 2002-01-28 and 2002-01-29
+
2002-01-28 [melvin] 0.7.0claws38
* src/compose.c
+2002-01-29
+
+ * src/mimeview.c: ¥Ü¥¿¥ó / ¥¡¼¥¤¥Ù¥ó¥È½èÍý¤ò½¤Àµ¤·¤Æ¿½Å¥À¥¤¥¢¥í¥°
+ / °ÜÆ°¤ò½¤Àµ¡£
+ * src/mimeview.[ch]
+ src/textview.c: MIME ¥â¡¼¥É¤Ç¤¤¤¯¤Ä¤«¤Î¥¡¼¥×¥ì¥¹¥¤¥Ù¥ó¥È¤ò
+ MimeView ¤ËÅϤ¹¤è¤¦¤Ë¤·¤¿¡£
+ * src/prefs_filter.c: ¥ë¡¼¥ë¤Î½ç½ø¤òÀµ¤·¤¯¥»¥Ã¥È¤·¤Ê¤¤¥Ð¥°¤ò½¤Àµ¡£
+
2002-01-28
* src/mainwindow.c
¸ò´¹¡£
* src/importldif.c: imp_ldif_delete_event(): ¥À¥¤¥¢¥í¥°¤ò¥¦¥£¥ó¥É¥¦
¥Þ¥Í¡¼¥¸¥ã¤ÇÊĤ¸¤¿¤È¤¤Î segfault ¤ò½¤Àµ(¤è¤êÀµ¤·¤¤ÊýË¡¤Ç)¡£
+ * src/imageview.[ch]
+ src/messageview.c
+ src/mimeview.c: ¥Æ¥¥¹¥È¤È²èÁü¥Ñ¡¼¥È¤òÀÚ¤êÂؤ¨¤¿¤È¤¤Î¸í¤Ã¤¿
+ ¥¹¥¯¥í¡¼¥ë°ÌÃÖ¤ò½¤Àµ¡£¤Þ¤¿ÉÔÍפʲèÁü¤ò³«Êü¤¹¤ë¤è¤¦¤Ë¤·¤¿
+ (Sergey Vlasov ¤µ¤ó thanks)¡£
+ * src/prefs_common.c: ¡Ö¿·Ãå¥á¡¼¥ë¤ò¼õ¿®¤·¤¿¸å¼õ¿®È¢¤Ë°ÜÆ°¤¹¤ë¡×
+ ¤ò¥Ç¥Õ¥©¥ë¥È¤Ç̵¸ú¤Ë¤·¤¿¡£
2002-01-28
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws38
+EXTRA_VERSION=claws39
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2002 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
GdkPixmap *pixmap;
GdkBitmap *mask;
+ imageview_clear(imageview);
+
pixbuf = gdk_pixbuf_new_from_file(file);
if (!pixbuf) {
g_warning(_("Can't load the image."));
- if (imageview->image)
- gtk_widget_hide(imageview->image);
return;
}
{
GdkImlibImage *im;
+ imageview_clear(imageview);
+
im = gdk_imlib_load_image((gchar *)file);
if (!im) {
g_warning(_("Can't load the image."));
- if (imageview->image)
- gtk_widget_hide(imageview->image);
return;
}
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2002 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2001 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2002 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
gint button,
GdkEvent *event,
MimeView *mimeview);
-static void mimeview_button_pressed (GtkWidget *widget,
+static gint mimeview_button_pressed (GtkWidget *widget,
GdkEventButton *event,
MimeView *mimeview);
-static void mimeview_key_pressed (GtkWidget *widget,
+static gint mimeview_key_pressed (GtkWidget *widget,
GdkEventKey *event,
MimeView *mimeview);
gtk_drag_set_icon_default(context);
}
-static void mimeview_button_pressed(GtkWidget *widget, GdkEventButton *event,
+static gint mimeview_button_pressed(GtkWidget *widget, GdkEventButton *event,
MimeView *mimeview)
{
GtkCList *clist = GTK_CLIST(widget);
MimeInfo *partinfo;
gint row, column;
- if (!event) return;
+ if (!event) return FALSE;
if (event->button == 2 || event->button == 3) {
if (!gtk_clist_get_selection_info(clist, event->x, event->y,
&row, &column))
- return;
+ return FALSE;
gtk_clist_unselect_all(clist);
gtk_clist_select_row(clist, row, column);
gtkut_clist_set_focus_row(clist, row);
NULL, NULL, NULL, NULL,
event->button, event->time);
}
+
+ return TRUE;
+}
+
+void mimeview_pass_key_press_event(MimeView *mimeview, GdkEventKey *event)
+{
+ mimeview_key_pressed(mimeview->ctree, event, mimeview);
}
#define BREAK_ON_MODIFIER_KEY() \
if ((event->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) != 0) break
-static void mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
+#define KEY_PRESS_EVENT_STOP() \
+ if (gtk_signal_n_emissions_by_name \
+ (GTK_OBJECT(ctree), "key_press_event") > 0) { \
+ gtk_signal_emit_stop_by_name(GTK_OBJECT(ctree), \
+ "key_press_event"); \
+ }
+
+static gint mimeview_key_pressed(GtkWidget *widget, GdkEventKey *event,
MimeView *mimeview)
{
SummaryView *summaryview;
- GtkCTree *ctree = GTK_CTREE(mimeview->ctree);
+ GtkCTree *ctree = GTK_CTREE(widget);
GtkCTreeNode *node;
- if (!event) return;
- if (!mimeview->opened) return;
+ if (!event) return FALSE;
+ if (!mimeview->opened) return FALSE;
switch (event->keyval) {
case GDK_space:
- if (textview_scroll_page(mimeview->textview, FALSE)) return;
+ if (textview_scroll_page(mimeview->textview, FALSE))
+ return TRUE;
node = GTK_CTREE_NODE_NEXT(mimeview->opened);
if (node) {
gtk_sctree_unselect_all(GTK_SCTREE(ctree));
gtk_sctree_select(GTK_SCTREE(ctree), node);
- return;
+ return TRUE;
}
break;
case GDK_BackSpace:
textview_scroll_page(mimeview->textview, TRUE);
- return;
+ return TRUE;
case GDK_Return:
textview_scroll_one_line(mimeview->textview,
(event->state & GDK_MOD1_MASK) != 0);
- return;
+ return TRUE;
case GDK_n:
case GDK_N:
BREAK_ON_MODIFIER_KEY();
if (!GTK_CTREE_NODE_NEXT(mimeview->opened)) break;
+ KEY_PRESS_EVENT_STOP();
gtk_signal_emit_by_name(GTK_OBJECT(ctree), "scroll_vertical",
GTK_SCROLL_STEP_FORWARD, 0.0);
- return;
+ return TRUE;
case GDK_p:
case GDK_P:
BREAK_ON_MODIFIER_KEY();
if (!GTK_CTREE_NODE_PREV(mimeview->opened)) break;
+ KEY_PRESS_EVENT_STOP();
gtk_signal_emit_by_name(GTK_OBJECT(ctree), "scroll_vertical",
GTK_SCROLL_STEP_BACKWARD, 0.0);
- return;
+ return TRUE;
case GDK_y:
BREAK_ON_MODIFIER_KEY();
+ KEY_PRESS_EVENT_STOP();
mimeview_save_as(mimeview);
- return;
+ return TRUE;
case GDK_t:
BREAK_ON_MODIFIER_KEY();
+ KEY_PRESS_EVENT_STOP();
mimeview_display_as_text(mimeview);
- return;
+ return TRUE;
case GDK_l:
BREAK_ON_MODIFIER_KEY();
+ KEY_PRESS_EVENT_STOP();
mimeview_launch(mimeview);
- return;
+ return TRUE;
default:
- break;
}
- if (!mimeview->messageview->mainwin) return;
+ if (!mimeview->messageview->mainwin) return FALSE;
summaryview = mimeview->messageview->mainwin->summaryview;
summary_pass_key_press_event(summaryview, event);
+ return TRUE;
}
static void mimeview_drag_data_get(GtkWidget *widget,
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999,2000 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2002 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#define __MIMEVIEW_H__
#include <glib.h>
+#include <gdk/gdk.h>
#include <gtk/gtkwidget.h>
#include <gtk/gtkctree.h>
const gchar *file);
void mimeview_destroy (MimeView *mimeview);
+void mimeview_pass_key_press_event (MimeView *mimeview,
+ GdkEventKey *event);
+
#endif /* __MIMEVIEW_H__ */
{"open_unread_on_enter", "FALSE", &prefs_common.open_unread_on_enter,
P_BOOL, &interface.checkbtn_openunread,
prefs_set_data_from_toggle, prefs_set_toggle},
- {"open_inbox_on_inc", "TRUE", &prefs_common.open_inbox_on_inc,
+ {"open_inbox_on_inc", "FALSE", &prefs_common.open_inbox_on_inc,
P_BOOL, &interface.checkbtn_openinbox,
prefs_set_data_from_toggle, prefs_set_toggle},
{"immediate_execution", "TRUE", &prefs_common.immediate_exec, P_BOOL,
GTK_CAN_FOCUS);
gtk_signal_connect (GTK_OBJECT (cond_clist), "select_row",
GTK_SIGNAL_FUNC (prefs_filter_select), NULL);
- gtk_signal_connect (GTK_OBJECT (cond_clist), "row_move",
- GTK_SIGNAL_FUNC (prefs_filter_row_move), NULL);
+ gtk_signal_connect_after (GTK_OBJECT (cond_clist), "row_move",
+ GTK_SIGNAL_FUNC (prefs_filter_row_move),
+ NULL);
btn_vbox = gtk_vbox_new (FALSE, 8);
gtk_widget_show (btn_vbox);
static void textview_show_header (TextView *textview,
GPtrArray *headers);
-static void textview_key_pressed (GtkWidget *widget,
+static gint textview_key_pressed (GtkWidget *widget,
GdkEventKey *event,
TextView *textview);
static gint textview_button_pressed (GtkWidget *widget,
return TRUE;
}
-static void textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
+#define KEY_PRESS_EVENT_STOP() \
+ if (gtk_signal_n_emissions_by_name \
+ (GTK_OBJECT(widget), "key_press_event") > 0) { \
+ gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), \
+ "key_press_event"); \
+ }
+
+static gint textview_key_pressed(GtkWidget *widget, GdkEventKey *event,
TextView *textview)
{
SummaryView *summaryview = NULL;
+ MessageView *messageview = textview->messageview;
- if (!event) return;
- if (textview->messageview->mainwin)
- summaryview = textview->messageview->mainwin->summaryview;
+ if (!event) return FALSE;
+ if (messageview->mainwin)
+ summaryview = messageview->mainwin->summaryview;
switch (event->keyval) {
case GDK_Tab:
textview_scroll_one_line(textview,
(event->state & GDK_MOD1_MASK) != 0);
break;
+ case GDK_n:
+ case GDK_N:
+ case GDK_p:
+ case GDK_P:
+ case GDK_y:
+ case GDK_t:
+ case GDK_l:
+ if (messageview->type == MVIEW_MIME) {
+ KEY_PRESS_EVENT_STOP();
+ mimeview_pass_key_press_event(messageview->mimeview,
+ event);
+ break;
+ }
+ /* fall through */
default:
if (summaryview)
summary_pass_key_press_event(summaryview, event);
break;
}
+
+ return TRUE;
}
static gint textview_button_pressed(GtkWidget *widget, GdkEventButton *event,