g_signal_connect(G_OBJECT(ctree), "tree_select_row",
G_CALLBACK(mimeview_selected), mimeview);
- g_signal_connect(G_OBJECT(ctree), "button_press_event",
+ g_signal_connect(G_OBJECT(ctree), "button_release_event",
G_CALLBACK(mimeview_button_pressed), mimeview);
g_signal_connect(G_OBJECT(ctree), "key_press_event",
G_CALLBACK(mimeview_key_pressed), mimeview);
static void update_signature_noticeview(MimeView *mimeview, MimeInfo *mimeinfo)
{
gchar *text = NULL, *button_text = NULL;
- GtkSignalFunc func = NULL;
+ void *func = NULL;
StockPixmap icon = STOCK_PIXMAP_PRIVACY_SIGNED;
g_return_if_fail(mimeview != NULL);
noticeview_set_button_text(mimeview->siginfoview, button_text);
noticeview_set_button_press_callback(
mimeview->siginfoview,
- func,
+ GTK_SIGNAL_FUNC(func),
(gpointer) mimeview);
noticeview_set_icon(mimeview->siginfoview, icon);
}
return FALSE;
}
+/* from gdkevents.c */
+#define DOUBLE_CLICK_TIME 250
+
static gboolean part_button_pressed(MimeView *mimeview, GdkEventButton *event,
MimeInfo *partinfo)
{
+ static MimeInfo *lastinfo;
+ static guint32 lasttime;
+
if (event->button == 2 ||
- (event->button == 1 && event->type == GDK_2BUTTON_PRESS)) {
+ (event->button == 1 && (event->time - lasttime) < DOUBLE_CLICK_TIME && lastinfo == partinfo)) {
/* call external program for image, audio or html */
mimeview_launch(mimeview);
return TRUE;
return TRUE;
}
+ lastinfo = partinfo;
+ lasttime = event->time;
return FALSE;
}
if (!event) return FALSE;
if (!mimeview->opened) return FALSE;
+ summaryview = mimeview->messageview->mainwin->summaryview;
+
+ if (summaryview && quicksearch_has_focus(summaryview->quicksearch))
+ return FALSE;
+
switch (event->keyval) {
case GDK_space:
if (textview_scroll_page(mimeview->textview, FALSE))
}
if (!mimeview->messageview->mainwin) return FALSE;
- summaryview = mimeview->messageview->mainwin->summaryview;
+
summary_pass_key_press_event(summaryview, event);
return TRUE;
}
guint time,
MimeView *mimeview)
{
- gchar *filename, *uriname;
+ gchar *filename, *uriname, *tmp;
MimeInfo *partinfo;
if (!mimeview->opened) return;
partinfo = mimeview_get_selected_part(mimeview);
if (!partinfo) return;
- filename = g_basename(get_part_name(partinfo));
+ filename = g_path_get_basename(get_part_name(partinfo));
if (*filename == '\0') return;
+ tmp = filename;
+
filename = g_strconcat(get_mime_tmp_dir(), G_DIR_SEPARATOR_S,
filename, NULL);
+ g_free(tmp);
+
if (procmime_get_part(filename, partinfo) < 0)
alertpanel_error
(_("Can't save the part of multipart message."));
startdir = g_strconcat(prefs_common.attach_save_dir,
G_DIR_SEPARATOR_S, NULL);
- dirname = filesel_select_file(_("Select destination folder"), startdir);
+ dirname = filesel_select_file_open(_("Select destination folder"), startdir);
if (!dirname) {
if (startdir) g_free(startdir);
return;
else
filepath = g_strdup(defname);
- filename = filesel_select_file(_("Save as"), filepath);
+ filename = filesel_select_file_save(_("Save as"), filepath);
if (!filename) {
g_free(filepath);
return;
if (event->button == 2 || event->button == 3)
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button),
TRUE);
- } else {
- g_signal_stop_emission_by_name(G_OBJECT(button), "button_press_event");
}
part_button_pressed(mimeview, event, partinfo);
gtk_tooltips_set_tip(mimeview->tooltips, button, tip, NULL);
g_free(tip);
gtk_widget_show_all(button);
- g_signal_connect(G_OBJECT(button), "button_press_event",
+ g_signal_connect(G_OBJECT(button), "button_release_event",
G_CALLBACK(icon_clicked_cb), mimeview);
g_signal_connect(G_OBJECT(button), "key_press_event",
G_CALLBACK(icon_key_pressed), mimeview);
mimeview->icon_count = 0;
adj = gtk_layout_get_vadjustment(GTK_LAYOUT(mimeview->icon_scroll));
adj->value = adj->lower;
- g_signal_stop_emission_by_name(G_OBJECT (adj), "value_changed");
}
static void icon_list_toggle_by_mime_info(MimeView *mimeview,
static void icon_list_create(MimeView *mimeview, MimeInfo *mimeinfo)
{
GtkRequisition size;
- gint width;
+
g_return_if_fail(mimeinfo != NULL);
while (mimeinfo != NULL) {
if (mimeinfo->type != MIMETYPE_MULTIPART)
icon_list_append_icon(mimeview, mimeinfo);
if (mimeinfo->node->children != NULL)
- icon_list_create(mimeview, (MimeInfo *) mimeinfo->node->children->data);
- mimeinfo = mimeinfo->node->next != NULL ? (MimeInfo *) mimeinfo->node->next->data : NULL;
+ icon_list_create(mimeview,
+ (MimeInfo *) mimeinfo->node->children->data);
+ mimeinfo = mimeinfo->node->next != NULL
+ ? (MimeInfo *) mimeinfo->node->next->data
+ : NULL;
}
gtk_widget_size_request(mimeview->icon_vbox, &size);
- width = size.width + 4;
- if (width > mimeview->icon_mainbox->requisition.width) {
+ if (size.width > mimeview->icon_mainbox->requisition.width) {
gtk_widget_set_size_request(mimeview->icon_mainbox,
- width, -1);
+ size.width, -1);
}
}