Andreas Krennmair:
[apps/madmutt.git] / curs_main.c
index 97640d6..c58b71a 100644 (file)
@@ -109,6 +109,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;
@@ -369,7 +385,7 @@ static void update_index (MUTTMENU *menu, CONTEXT *ctx, int check,
   
   if (menu->current < 0)
     menu->current = ci_first_message ();
-  
+
 }
 
 static void resort_index (MUTTMENU *menu)
@@ -590,6 +606,13 @@ int mutt_index_menu (void)
         mutt_paddstr (COLS, buf);
         SETCOLOR (MT_COLOR_NORMAL);
         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 +1121,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)
           {
@@ -1273,6 +1299,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;