This option overrides always_show_message_when_selected
option when selecting initial message during folder open.
This is useful so that the message's unread flag doesn't
get unset before user had the chance of noticing it, or
that an overly large message doesn't get automatically
selected if user doesn't want it (e.g. IMAP over a slow
connection).
#endif
/* {"emulate_emacs", "FALSE", &prefs_common.emulate_emacs, P_BOOL,
NULL, NULL, NULL}, */
#endif
/* {"emulate_emacs", "FALSE", &prefs_common.emulate_emacs, P_BOOL,
NULL, NULL, NULL}, */
+ {"open_selected_message_on_folder_open", "FALSE",
+ &prefs_common.open_selected_on_folder_open,
+ P_BOOL, NULL, NULL, NULL},
{"always_show_message_when_selected", "0",
&prefs_common.always_show_msg,
P_ENUM, NULL, NULL, NULL},
{"always_show_message_when_selected", "0",
&prefs_common.always_show_msg,
P_ENUM, NULL, NULL, NULL},
- OPENMSG_REQUEST_ONLY = 0,
- OPENMSG_ALWAYS = 1,
+ OPENMSG_NO = 0,
+ OPENMSG_YES = 1,
OPENMSG_WHEN_VIEW_VISIBLE
} ShowMsgPolicy;
OPENMSG_WHEN_VIEW_VISIBLE
} ShowMsgPolicy;
gint statusbar_update_step;
gboolean emulate_emacs;
gint statusbar_update_step;
gboolean emulate_emacs;
+ gboolean open_selected_on_folder_open;
ShowMsgPolicy always_show_msg;
gboolean mark_as_read_on_new_window;
gboolean mark_as_read_delay;
ShowMsgPolicy always_show_msg;
gboolean mark_as_read_on_new_window;
gboolean mark_as_read_delay;
menu = GTK_LIST_STORE(gtk_combo_box_get_model(
GTK_COMBO_BOX(optmenu_always_show_msg)));
gtk_widget_show (optmenu_always_show_msg);
menu = GTK_LIST_STORE(gtk_combo_box_get_model(
GTK_COMBO_BOX(optmenu_always_show_msg)));
gtk_widget_show (optmenu_always_show_msg);
- COMBOBOX_ADD (menu, _("Never"), OPENMSG_REQUEST_ONLY);
- COMBOBOX_ADD (menu, _("Always"), OPENMSG_ALWAYS);
- COMBOBOX_ADD (menu, _("When message view is visible"),
+ COMBOBOX_ADD (menu, _("No"), OPENMSG_NO);
+ COMBOBOX_ADD (menu, _("Yes"), OPENMSG_YES);
+ COMBOBOX_ADD (menu, _("Only when message view is visible"),
OPENMSG_WHEN_VIEW_VISIBLE);
gtk_box_pack_start(GTK_BOX(hbox1), optmenu_always_show_msg, FALSE, FALSE, 0);
OPENMSG_WHEN_VIEW_VISIBLE);
gtk_box_pack_start(GTK_BOX(hbox1), optmenu_always_show_msg, FALSE, FALSE, 0);
GtkWidget *possible_actions_list_view;
GtkWidget *actions_list_view;
GtkWidget *possible_actions_list_view;
GtkWidget *actions_list_view;
+
+ GtkWidget *open_on_select;
} summaryopen;
/* widget creating functions */
} summaryopen;
/* widget creating functions */
GtkWidget *list_view_scrolledwin;
GtkWidget *possible_actions_list_view;
GtkWidget *actions_list_view;
GtkWidget *list_view_scrolledwin;
GtkWidget *possible_actions_list_view;
GtkWidget *actions_list_view;
+ GtkWidget *checkbtn_open_on_select;
window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_summary_open");
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
window = gtkut_window_new(GTK_WINDOW_TOPLEVEL, "prefs_summary_open");
gtk_container_set_border_width (GTK_CONTAINER (window), 8);
gtk_box_pack_start (GTK_BOX (btn_vbox), down_btn, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (down_btn), "clicked",
G_CALLBACK (prefs_summary_open_down), NULL);
gtk_box_pack_start (GTK_BOX (btn_vbox), down_btn, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (down_btn), "clicked",
G_CALLBACK (prefs_summary_open_down), NULL);
+
+ PACK_CHECK_BUTTON(vbox, checkbtn_open_on_select,
+ _("Open the selected message"));
gtk_widget_show_all(window);
gtk_widget_show_all(window);
summaryopen.possible_actions_list_view = possible_actions_list_view;
summaryopen.actions_list_view = actions_list_view;
summaryopen.possible_actions_list_view = possible_actions_list_view;
summaryopen.actions_list_view = actions_list_view;
+ summaryopen.open_on_select = checkbtn_open_on_select;
}
/* do it SUMMARY_OPEN_ACTIONS-1 times */
}
/* do it SUMMARY_OPEN_ACTIONS-1 times */
(model_poss), action_name[i], i);
}
}
(model_poss), action_name[i], i);
}
}
+
+ gtk_toggle_button_set_active
+ (GTK_TOGGLE_BUTTON(summaryopen.open_on_select),
+ prefs_common.open_selected_on_folder_open);
}
static void prefs_summary_open_set_list(void)
}
static void prefs_summary_open_set_list(void)
for (i = 0; i < SUMMARY_OPEN_ACTIONS-1; i++)
saved_summary_select_prio[i] = prefs_common.summary_select_prio[i];
for (i = 0; i < SUMMARY_OPEN_ACTIONS-1; i++)
saved_summary_select_prio[i] = prefs_common.summary_select_prio[i];
+ prefs_common.open_selected_on_folder_open =
+ gtk_toggle_button_get_active
+ (GTK_TOGGLE_BUTTON(summaryopen.open_on_select));
+
gtk_widget_hide(summaryopen.window);
gtk_window_set_modal(GTK_WINDOW(summaryopen.window), FALSE);
}
gtk_widget_hide(summaryopen.window);
gtk_window_set_modal(GTK_WINDOW(summaryopen.window), FALSE);
}
}
summary_unlock(summaryview);
}
summary_unlock(summaryview);
- if (node)
- summary_select_node(summaryview, node, -1);
+
+ if (node) {
+ gint open_selected = -1;
+ if (!is_refresh) {
+ if (prefs_common.open_selected_on_folder_open)
+ open_selected = 1;
+ else
+ open_selected = 0;
+ }
+ summary_select_node(summaryview, node, open_selected);
+ }
+
summary_lock(summaryview);
}
summary_lock(summaryview);
}
gboolean display_msg;
display_msg = force_display > -1? force_display :
gboolean display_msg;
display_msg = force_display > -1? force_display :
- (prefs_common.always_show_msg == OPENMSG_ALWAYS) ||
+ (prefs_common.always_show_msg == OPENMSG_YES) ||
((prefs_common.always_show_msg == OPENMSG_WHEN_VIEW_VISIBLE &&
messageview_is_visible(summaryview->messageview)));
((prefs_common.always_show_msg == OPENMSG_WHEN_VIEW_VISIBLE &&
messageview_is_visible(summaryview->messageview)));