{(gulong)0, (gushort)0, (gushort)0, (gushort)0}
};
+static GdkColor signature_color = {
+ (gulong)0,
+ (gushort)0x7fff,
+ (gushort)0x7fff,
+ (gushort)0x7fff
+};
+
static GdkColor uri_color = {
(gulong)0,
(gushort)0,
GtkWidget *text_sb;
GtkWidget *text_mb;
- debug_print(_("Creating text view...\n"));
+ debug_print("Creating text view...\n");
textview = g_new0(TextView, 1);
scrolledwin_sb = gtk_scrolled_window_new(NULL, NULL);
"e_colors[2]);
gtkut_convert_int_to_gdk_color(prefs_common.uri_col,
&uri_color);
+ gtkut_convert_int_to_gdk_color(prefs_common.signature_col,
+ &signature_color);
} else {
quote_colors[0] = quote_colors[1] = quote_colors[2] =
- uri_color = emphasis_color = black;
+ uri_color = emphasis_color = signature_color = black;
}
}
if (!boundary && (mimeinfo->mime_type == MIME_TEXT ||
mimeinfo->mime_type == MIME_TEXT_HTML ||
mimeinfo->mime_type == MIME_TEXT_ENRICHED)) {
-
+
if (fseek(fp, mimeinfo->fpos, SEEK_SET) < 0)
perror("fseek");
headers = textview_scan_header(textview, fp);
gtk_stext_freeze(text);
+#if USE_GPGME
+ if (mimeinfo->sigstatus)
+ g_snprintf(buf, sizeof(buf), "\n[%s (%s)]\n",
+ mimeinfo->content_type, mimeinfo->sigstatus);
+ else
+#endif
if (mimeinfo->filename || mimeinfo->name)
g_snprintf(buf, sizeof(buf), "\n[%s %s (%d bytes)]\n",
mimeinfo->filename ? mimeinfo->filename :
charset = mimeinfo->charset;
textview_write_body(textview, mimeinfo, fp, charset);
}
-
+
gtk_stext_thaw(text);
}
textview_set_font(textview, NULL);
text = GTK_STEXT(textview->text);
textview_clear(textview);
-
+
gtk_stext_freeze(text);
TEXT_INSERT(_("To save this part, pop up the context menu with "));
} else {
TEXT_INSERT(partinfo->sigstatus_full);
}
-
+
gtk_stext_thaw(text);
}
#endif /* USE_GPGME */
conv = conv_code_converter_new(charset);
tmpfp = procmime_decode_content(NULL, fp, mimeinfo);
+
+ textview->is_in_signature = FALSE;
+
if (tmpfp) {
+
if (mimeinfo->mime_type == MIME_TEXT_HTML)
textview_show_html(textview, tmpfp, conv);
else if (mimeinfo->mime_type == MIME_TEXT_ENRICHED)
textview_write_line(textview, str, NULL);
}
}
+
html_parser_destroy(parser);
}
{
ERTFParser *parser;
gchar *str;
- gchar* url = NULL;
parser = ertf_parser_new(fp, conv);
g_return_if_fail(parser != NULL);
while ((str = ertf_parse(parser)) != NULL) {
textview_write_line(textview, str, NULL);
}
+
ertf_parser_destroy(parser);
}
else
fg_color = "e_colors[quotelevel];
+ if (prefs_common.enable_color && (strcmp(buf,"-- \n") == 0 || textview->is_in_signature)) {
+ fg_color = &signature_color;
+ textview->is_in_signature = TRUE;
+ }
+
if (prefs_common.head_space && spacingfont && buf[0] != '\n')
gtk_stext_insert(text, spacingfont, NULL, NULL, " ", 1);
header = g_ptr_array_index(headers, i);
g_ptr_array_add(sorted_headers, header);
}
- }
+ g_ptr_array_free(headers, TRUE);
+ } else
+ procheader_header_array_destroy(headers);
- g_ptr_array_free(headers, FALSE);
return sorted_headers;
}
textview_scroll_one_line(textview,
(event->state & GDK_MOD1_MASK) != 0);
break;
+ case GDK_Delete:
+ if (summaryview)
+ summary_pass_key_press_event(summaryview, event);
+ break;
case GDK_n:
case GDK_N:
case GDK_p:
case GDK_y:
case GDK_t:
case GDK_l:
- if (messageview->type == MVIEW_MIME) {
+ if (messageview->type == MVIEW_MIME &&
+ textview == messageview->mimeview->textview) {
KEY_PRESS_EVENT_STOP();
mimeview_pass_key_press_event(messageview->mimeview,
event);
}
/* fall through */
default:
- if (summaryview)
- summary_pass_key_press_event(summaryview, event);
+ if (summaryview &&
+ event->window != messageview->mainwin->window->window) {
+ GdkEventKey tmpev = *event;
+
+ tmpev.window = messageview->mainwin->window->window;
+ KEY_PRESS_EVENT_STOP();
+ gtk_widget_event(messageview->mainwin->window,
+ (GdkEvent *)&tmpev);
+ }
break;
}
return TRUE;
}
-static gint show_url_timeout_cb(TextView *textview ){
+static gint show_url_timeout_cb(gpointer data)
+{
+ TextView *textview = (TextView *)data;
+
if (textview->messageview->mainwin)
if (textview->show_url_msgid)
gtk_statusbar_remove(GTK_STATUSBAR(
GTK_STATUSBAR(textview->messageview->mainwin->statusbar),
textview->messageview->mainwin->folderview_cid,
uri->uri);
- textview->show_url_timeout_tag = gtk_timeout_add( 2000, show_url_timeout_cb, textview );
+ textview->show_url_timeout_tag = gtk_timeout_add( 4000, show_url_timeout_cb, textview );
gtkut_widget_wait_for_draw(textview->messageview->mainwin->hbox_stat);
}
} else
if (!g_strncasecmp(uri->uri, "mailto:", 7)) {
if (event->button == 3) {
gchar *fromname, *fromaddress;
- GdkEventButton tmpev;
/* extract url */
fromaddress = g_strdup(uri->uri + 7);
if (folder_item->prefs && folder_item->prefs->enable_default_account)
account = account_find_from_id(folder_item->prefs->default_account);
}
- compose_new_with_recipient
- (account, uri->uri + 7);
+ compose_new(account, uri->uri + 7, NULL);
}
} else {
open_uri(uri->uri,