static void goto_folder_cb (MainWindow *mainwin,
guint action,
GtkWidget *widget);
+static void goto_unread_folder_cb(MainWindow *mainwin,
+ guint action,
+ GtkWidget *widget);
static void copy_cb (MainWindow *mainwin,
guint action,
{N_("/_View/_Go to/Next la_beled message"),
NULL, next_labeled_cb, 0, NULL},
{N_("/_View/_Go to/---"), NULL, NULL, 0, "<Separator>"},
- {N_("/_View/_Go to/Other _folder..."), "G", goto_folder_cb, 0, NULL},
+ {N_("/_View/_Go to/Next unread _folder"), "<shift>G", goto_unread_folder_cb, 0, NULL},
+ {N_("/_View/_Go to/_Other folder..."), "G", goto_folder_cb, 0, NULL},
{N_("/_View/---"), NULL, NULL, 0, "<Separator>"},
#define ENC_SEPARATOR \
, M_INC_ACTIVE},
{"/Message/Compose a news message", M_HAVE_NEWS_ACCOUNT},
- {"/Message/Reply" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Message/Reply to" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
- {"/Message/Follow-up and reply to", M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST|M_NEWS},
+ {"/Message/Reply" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Message/Reply to" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
+ {"/Message/Follow-up and reply to", M_HAVE_ACCOUNT|M_TARGET_EXIST|M_NEWS},
{"/Message/Forward" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Message/Forward as attachment" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
- {"/Message/Redirect" , M_HAVE_ACCOUNT|M_SINGLE_TARGET_EXIST},
+ {"/Message/Redirect" , M_HAVE_ACCOUNT|M_TARGET_EXIST},
{"/Message/Move..." , M_TARGET_EXIST|M_ALLOW_DELETE},
{"/Message/Copy..." , M_TARGET_EXIST|M_EXEC},
{"/Message/Move to trash" , M_TARGET_EXIST|M_ALLOW_DELETE|M_NOT_NEWS},
buf = *buffer;
if (buf == 0x00) {
- url_decoded = 0x00;
+ *url_decoded = '\0';
+ *buffer = NULL;
return;
}
/* Ignore spaces, comments and tabs () */
for (i = 0; *buf != '>' && *buf != 0x00 && i<maxlen; tmp[i++] = *(buf++));
buf++;
}
- else
- /* else, we finish parsing and ignore everything */
- for (;buf != 0x00; buf++);
+ else {
+ *buffer = NULL;
+ *url_decoded = '\0';
+ return;
+ }
tmp[i] = 0x00;
- *url_decoded = 0x00;
+ *url_decoded = '\0';
+ *buffer = NULL;
if (i == maxlen) {
- for (;*buf != 0x00; buf++);
return;
}
decode_uri (url_decoded, (const gchar *)tmp);
folderview_select(mainwin->folderview, to_folder);
}
+static void goto_unread_folder_cb(MainWindow *mainwin, guint action,
+ GtkWidget *widget)
+{
+ folderview_select_next_unread(mainwin->folderview);
+}
+
static void copy_cb(MainWindow *mainwin, guint action, GtkWidget *widget)
{
messageview_copy_clipboard(mainwin->messageview);
{
MessageView *msgview = mainwin->messageview;
- if (GTK_WIDGET_HAS_FOCUS(mainwin->summaryview->ctree))
- summary_select_all(mainwin->summaryview);
- else if (messageview_is_visible(msgview) &&
+ if (messageview_is_visible(msgview) &&
(GTK_WIDGET_HAS_FOCUS(msgview->mimeview->textview->text)))
messageview_select_all(mainwin->messageview);
+ else
+ summary_select_all(mainwin->summaryview);
}
static void select_thread_cb(MainWindow *mainwin, guint action,
SummaryView *summary;
g_return_val_if_fail(data, FALSE);
+ if (!g_list_find(mainwin_list, data))
+ return TRUE;
summary = ((MainWindow *)data)->summaryview;
g_return_val_if_fail(summary, FALSE);