X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=curs_main.c;h=14bb5529ce8a1a7645b1aa015e15b31b09abef27;hb=e9cbbd6d2f13c05021af4470332317c727acb693;hp=97640d6e6cf1268934560df4a18ead3cd101a0a4;hpb=0d5798fa40d68a2cff1193196b9c4ddd67da5063;p=apps%2Fmadmutt.git diff --git a/curs_main.c b/curs_main.c index 97640d6..14bb552 100644 --- a/curs_main.c +++ b/curs_main.c @@ -16,6 +16,10 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ +#if HAVE_CONFIG_H +# include "config.h" +#endif + #include "mutt.h" #include "mutt_curses.h" #include "mx.h" @@ -109,6 +113,22 @@ static const char *No_visible = N_("No visible messages."); extern const char *ReleaseDate; extern size_t UngetCount; +static void set_xterm_title_bar(char *title) +{ + fputs("\033]2;", stdout); + fputs(title, stdout); + fputs("\007", stdout); + fflush(stdout); +} + +static void set_xterm_icon_name(char *name) +{ + fputs("\033]1;", stdout); + fputs(name, stdout); + fputs("\007", stdout); + fflush(stdout); +} + void index_make_entry (char *s, size_t l, MUTTMENU *menu, int num) { format_flag flag = M_FORMAT_MAKEPRINT | M_FORMAT_ARROWCURSOR | M_FORMAT_INDEX; @@ -517,6 +537,8 @@ int mutt_index_menu (void) mutt_error _("Mailbox was externally modified. Flags may be wrong."); else if (check == M_NEW_MAIL) { + /* on new mail: redraw sidebar */ + draw_sidebar (CurrentMenu); mutt_message _("New mail in this mailbox."); if (option (OPTBEEPNEW)) beep (); @@ -542,8 +564,10 @@ int mutt_index_menu (void) { /* check for new mail in the incoming folders */ oldcount = newcount; - if ((newcount = mutt_buffy_check (0)) != oldcount) + if ((newcount = mutt_buffy_check (0)) != oldcount){ menu->redraw |= REDRAW_STATUS; + menu->redraw |= REDRAW_SIDEBAR; + } if (do_buffy_notify) { if (mutt_buffy_notify () && option (OPTBEEPNEW)) @@ -555,7 +579,7 @@ int mutt_index_menu (void) if (op != -1) mutt_curs_set (0); - + if (menu->redraw & REDRAW_SIDEBAR) draw_sidebar(menu->menu); if (menu->redraw & REDRAW_FULL) { menu_redraw_full (menu); @@ -589,7 +613,15 @@ int mutt_index_menu (void) SETCOLOR (MT_COLOR_STATUS); mutt_paddstr (COLS, buf); SETCOLOR (MT_COLOR_NORMAL); + set_buffystats (Context); menu->redraw &= ~REDRAW_STATUS; + if (option(OPTXTERMSETTITLES)) + { + menu_status_line (buf, sizeof (buf), menu, NONULL (XtermTitle)); + set_xterm_title_bar(buf); + menu_status_line (buf, sizeof (buf), menu, NONULL (XtermIcon)); + set_xterm_icon_name(buf); + } } menu->redraw = 0; @@ -1098,6 +1130,9 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); else { mutt_set_flag (Context, CURHDR, M_TAG, !CURHDR->tagged); + Context->last_tag = CURHDR->tagged ? CURHDR : + ((Context->last_tag == CURHDR && !CURHDR->tagged) + ? NULL : Context->last_tag); menu->redraw = REDRAW_STATUS; if (option (OPTRESOLVE) && menu->current < Context->vcount - 1) { @@ -1152,6 +1187,9 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); case OP_MAIN_SYNC_FOLDER: + if (Context && !Context->msgcount) + break; + CHECK_MSGCOUNT; CHECK_VISIBLE; CHECK_READONLY; @@ -1273,6 +1311,12 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); { int check; +#ifdef USE_COMPRESSED + if (Context->compressinfo && Context->realpath) + mutt_str_replace (&LastFolder, Context->realpath); + else +#endif + mutt_str_replace (&LastFolder, Context->path); oldcount = Context ? Context->msgcount : 0; @@ -1360,7 +1404,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); if ((menu->menu == MENU_MAIN) && (query_quadoption (OPT_QUIT, - _("Exit Mutt without saving?")) == M_YES)) + _("Exit Mutt-ng without saving?")) == M_YES)) { if (Context) { @@ -2048,6 +2092,8 @@ CHECK_IMAP_ACL(IMAP_ACL_INSERT); } #endif + if (option (OPTPGPAUTODEC) && (tag || !(CURHDR->security & PGP_TRADITIONAL_CHECKED))) + mutt_check_traditional_pgp (tag ? NULL : CURHDR, &menu->redraw); mutt_edit_message (Context, tag ? NULL : CURHDR); menu->redraw = REDRAW_FULL; @@ -2116,7 +2162,9 @@ CHECK_IMAP_ACL(IMAP_ACL_INSERT); break; CHECK_MSGCOUNT; CHECK_VISIBLE; - mutt_check_traditional_pgp (tag ? NULL : CURHDR, &menu->redraw); + if (tag || !(CURHDR->security & PGP_TRADITIONAL_CHECKED)) + mutt_check_traditional_pgp (tag ? NULL : CURHDR, &menu->redraw); + if (menu->menu == MENU_PAGER) { op = OP_DISPLAY_MESSAGE; @@ -2328,6 +2376,7 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); case OP_BUFFY_LIST: mutt_buffy_list (); + menu->redraw = REDRAW_FULL; break; case OP_VIEW_ATTACHMENTS: @@ -2350,6 +2399,8 @@ CHECK_IMAP_ACL(IMAP_ACL_DELETE); case OP_SIDEBAR_SCROLL_DOWN: case OP_SIDEBAR_NEXT: case OP_SIDEBAR_PREV: + case OP_SIDEBAR_NEXT_NEW: + case OP_SIDEBAR_PREV_NEW: scroll_sidebar(op, menu->menu); break; default: