]> granicus.if.org Git - neomutt/commitdiff
Change message modifying operations to additively set redraw flags.
authorKevin McCarthy <kevin@8t8.us>
Fri, 5 May 2017 19:46:36 +0000 (12:46 -0700)
committerRichard Russon <rich@flatcap.org>
Fri, 12 May 2017 13:08:59 +0000 (14:08 +0100)
With the ability to set redraw flags with the menu stack operations,
some operations internally modify the current menu redraw flag.
For instance, _mutt_set_flag() can now set REDRAW_SIDEBAR.

Change the ops that modify messages to use 'redraw |= REDRAW_X'
instead of overwriting the flag value.

curs_main.c
menu.c
pager.c
postpone.c

index 6b740da78b3c35693aa405704b380b88de91c59b..851a1b29dd2c7a657b3ee43f11c07d637e0725ac 100644 (file)
@@ -291,7 +291,7 @@ static void resort_index(MUTTMENU *menu)
   if (menu->current < 0)
     menu->current = ci_first_message();
 
-  menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+  menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
 }
 
 void update_index(MUTTMENU *menu, CONTEXT *ctx, int check, int oldcount, int index_hint)
@@ -444,7 +444,7 @@ static int main_change_folder(MUTTMENU *menu, int op, char *buf, size_t bufsz,
 
       FREE(&new_last_folder);
       set_option(OPTSEARCHINVALID);
-      menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+      menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
       return 0;
     }
     FREE(&Context);
@@ -1441,7 +1441,7 @@ int mutt_index_menu(void)
 
         CHECK_ATTACH;
         mutt_pattern_func(MUTT_DELETE, _("Delete messages matching: "));
-        menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+        menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         break;
 
 #ifdef USE_POP
@@ -1522,7 +1522,6 @@ int mutt_index_menu(void)
           }
           else
             menu->current = 0;
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
           if (Context->msgcount && (Sort & SORT_MASK) == SORT_THREADS)
             mutt_draw_tree(Context);
           menu->redraw = REDRAW_FULL;
@@ -1607,7 +1606,7 @@ int mutt_index_menu(void)
         {
           for (j = 0; j < Context->vcount; j++)
             mutt_set_flag(Context, Context->hdrs[Context->v2r[j]], MUTT_TAG, 0);
-          menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+          menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         }
         else
         {
@@ -1618,7 +1617,7 @@ int mutt_index_menu(void)
                                              NULL :
                                              Context->last_tag);
 
-          menu->redraw = REDRAW_STATUS;
+          menu->redraw |= REDRAW_STATUS;
           if (option(OPTRESOLVE) && menu->current < Context->vcount - 1)
           {
             menu->current++;
@@ -1634,7 +1633,7 @@ int mutt_index_menu(void)
         CHECK_MSGCOUNT;
         CHECK_VISIBLE;
         mutt_pattern_func(MUTT_TAG, _("Tag messages matching: "));
-        menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+        menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         break;
 
       case OP_MAIN_UNDELETE_PATTERN:
@@ -1647,7 +1646,7 @@ int mutt_index_menu(void)
 
         if (mutt_pattern_func(MUTT_UNDELETE,
                               _("Undelete messages matching: ")) == 0)
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         break;
 
       case OP_MAIN_UNTAG_PATTERN:
@@ -1655,7 +1654,7 @@ int mutt_index_menu(void)
         CHECK_MSGCOUNT;
         CHECK_VISIBLE;
         if (mutt_pattern_func(MUTT_UNTAG, _("Untag messages matching: ")) == 0)
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         break;
 
       case OP_COMPOSE_TO_SENDER:
@@ -2488,13 +2487,13 @@ int mutt_index_menu(void)
             if ((menu->current = ci_next_undeleted(menu->current)) == -1)
             {
               menu->current = menu->oldcurrent;
-              menu->redraw = REDRAW_CURRENT;
+              menu->redraw |= REDRAW_CURRENT;
             }
             else
-              menu->redraw = REDRAW_MOTION_RESYNCH;
+              menu->redraw |= REDRAW_MOTION_RESYNCH;
           }
           else
-            menu->redraw = REDRAW_CURRENT;
+            menu->redraw |= REDRAW_CURRENT;
         }
         menu->redraw |= REDRAW_STATUS;
         break;
@@ -2520,7 +2519,7 @@ int mutt_index_menu(void)
                 mutt_set_flag(Context, Context->hdrs[Context->v2r[j]], MUTT_READ, 1);
             }
           }
-          menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+          menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         }
         else
         {
@@ -2534,13 +2533,13 @@ int mutt_index_menu(void)
             if ((menu->current = ci_next_undeleted(menu->current)) == -1)
             {
               menu->current = menu->oldcurrent;
-              menu->redraw = REDRAW_CURRENT;
+              menu->redraw |= REDRAW_CURRENT;
             }
             else
-              menu->redraw = REDRAW_MOTION_RESYNCH;
+              menu->redraw |= REDRAW_MOTION_RESYNCH;
           }
           else
-            menu->redraw = REDRAW_CURRENT;
+            menu->redraw |= REDRAW_CURRENT;
           menu->redraw |= REDRAW_STATUS;
         }
         break;
@@ -2624,7 +2623,7 @@ int mutt_index_menu(void)
 
         if (mutt_change_flag(tag ? NULL : CURHDR, (op == OP_MAIN_SET_FLAG)) == 0)
         {
-          menu->redraw = REDRAW_STATUS;
+          menu->redraw |= REDRAW_STATUS;
           if (tag)
             menu->redraw |= REDRAW_INDEX;
           else if (option(OPTRESOLVE))
@@ -2724,7 +2723,7 @@ int mutt_index_menu(void)
           mutt_tag_set_flag(MUTT_PURGE, (op == OP_PURGE_MESSAGE));
           if (option(OPTDELETEUNTAG))
             mutt_tag_set_flag(MUTT_TAG, 0);
-          menu->redraw = REDRAW_INDEX;
+          menu->redraw |= REDRAW_INDEX;
         }
         else
         {
@@ -2737,7 +2736,7 @@ int mutt_index_menu(void)
             if ((menu->current = ci_next_undeleted(menu->current)) == -1)
             {
               menu->current = menu->oldcurrent;
-              menu->redraw = REDRAW_CURRENT;
+              menu->redraw |= REDRAW_CURRENT;
             }
             else if (menu->menu == MENU_PAGER)
             {
@@ -2748,7 +2747,7 @@ int mutt_index_menu(void)
               menu->redraw |= REDRAW_MOTION_RESYNCH;
           }
           else
-            menu->redraw = REDRAW_CURRENT;
+            menu->redraw |= REDRAW_CURRENT;
         }
         menu->redraw |= REDRAW_STATUS;
         break;
@@ -2780,7 +2779,7 @@ int mutt_index_menu(void)
           if (option(OPTRESOLVE))
             if ((menu->current = ci_next_undeleted(menu->current)) == -1)
               menu->current = menu->oldcurrent;
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         }
         break;
 
@@ -2941,7 +2940,7 @@ int mutt_index_menu(void)
          */
         if (Context->magic == MUTT_IMAP && !option(OPTIMAPPEEK))
         {
-          menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
+          menu->redraw |= (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
         }
 #endif
 
@@ -2959,7 +2958,7 @@ int mutt_index_menu(void)
          */
         if (Context->magic == MUTT_IMAP && !option(OPTIMAPPEEK))
         {
-          menu->redraw = (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
+          menu->redraw |= (tag ? REDRAW_INDEX : REDRAW_CURRENT) | REDRAW_STATUS;
         }
 #endif
 
@@ -2990,7 +2989,7 @@ int mutt_index_menu(void)
               continue;
             }
           }
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         }
         break;
 
@@ -3125,7 +3124,7 @@ int mutt_index_menu(void)
             if (menu->current == -1)
               menu->current = menu->oldcurrent;
           }
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         }
         break;
 
@@ -3141,7 +3140,7 @@ int mutt_index_menu(void)
         {
           mutt_tag_set_flag(MUTT_DELETE, 0);
           mutt_tag_set_flag(MUTT_PURGE, 0);
-          menu->redraw = REDRAW_INDEX;
+          menu->redraw |= REDRAW_INDEX;
         }
         else
         {
@@ -3150,10 +3149,10 @@ int mutt_index_menu(void)
           if (option(OPTRESOLVE) && menu->current < Context->vcount - 1)
           {
             menu->current++;
-            menu->redraw = REDRAW_MOTION_RESYNCH;
+            menu->redraw |= REDRAW_MOTION_RESYNCH;
           }
           else
-            menu->redraw = REDRAW_CURRENT;
+            menu->redraw |= REDRAW_CURRENT;
         }
         menu->redraw |= REDRAW_STATUS;
         break;
@@ -3183,7 +3182,7 @@ int mutt_index_menu(void)
             if (menu->current == -1)
               menu->current = menu->oldcurrent;
           }
-          menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+          menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
         }
         break;
 
diff --git a/menu.c b/menu.c
index f0b4edf045c6bfefd5e04f3f8e85cf4b6b53c838..ac8423e3a68efbf8fcdbb21776b1ae56be77e690 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -1212,7 +1212,7 @@ int mutt_menu_loop(MUTTMENU *menu)
           {
             for (i = 0; i < menu->max; i++)
               menu->tagged += menu->tag(menu, i, 0);
-            menu->redraw = REDRAW_INDEX;
+            menu->redraw |= REDRAW_INDEX;
           }
           else if (menu->max)
           {
@@ -1221,10 +1221,10 @@ int mutt_menu_loop(MUTTMENU *menu)
             if (j && option(OPTRESOLVE) && menu->current < menu->max - 1)
             {
               menu->current++;
-              menu->redraw = REDRAW_MOTION_RESYNCH;
+              menu->redraw |= REDRAW_MOTION_RESYNCH;
             }
             else
-              menu->redraw = REDRAW_CURRENT;
+              menu->redraw |= REDRAW_CURRENT;
           }
           else
             mutt_error(_("No entries."));
diff --git a/pager.c b/pager.c
index 4ebb7e5e382568d4d4a5516b065d9451c72bbda2..8356bbd6e199f90bd17c782bb8a593df979aae66 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -2663,7 +2663,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
         mutt_set_flag(Context, extra->hdr, MUTT_PURGE, (ch == OP_PURGE_MESSAGE));
         if (option(OPTDELETEUNTAG))
           mutt_set_flag(Context, extra->hdr, MUTT_TAG, 0);
-        pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+        pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         if (option(OPTRESOLVE))
         {
           ch = -1;
@@ -2716,7 +2716,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
           if (!option(OPTRESOLVE) && PagerIndexLines)
             pager_menu->redraw = REDRAW_FULL;
           else
-            pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+            pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         }
         break;
 
@@ -2816,7 +2816,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
         CHECK_ACL(MUTT_ACL_WRITE, "Cannot flag message");
 
         mutt_set_flag(Context, extra->hdr, MUTT_FLAG, !extra->hdr->flagged);
-        pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+        pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         if (option(OPTRESOLVE))
         {
           ch = -1;
@@ -3009,7 +3009,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
                        Context->last_tag);
         }
 
-        pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+        pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         if (option(OPTRESOLVE))
         {
           ch = -1;
@@ -3029,7 +3029,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
           mutt_set_flag(Context, extra->hdr, MUTT_READ, 1);
         first = 0;
         Context->msgnotreadyet = -1;
-        pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+        pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         if (option(OPTRESOLVE))
         {
           ch = -1;
@@ -3045,7 +3045,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
 
         mutt_set_flag(Context, extra->hdr, MUTT_DELETE, 0);
         mutt_set_flag(Context, extra->hdr, MUTT_PURGE, 0);
-        pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+        pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         if (option(OPTRESOLVE))
         {
           ch = -1;
@@ -3076,7 +3076,7 @@ int mutt_pager(const char *banner, const char *fname, int flags, pager_t *extra)
           if (!option(OPTRESOLVE) && PagerIndexLines)
             pager_menu->redraw = REDRAW_FULL;
           else
-            pager_menu->redraw = REDRAW_STATUS | REDRAW_INDEX;
+            pager_menu->redraw |= REDRAW_STATUS | REDRAW_INDEX;
         }
         break;
 
index 45b79259d8a92338eb5dd68690298a8ded14cc6c..082ef5992620463c4b978cb4c967e90a7857eb89 100644 (file)
@@ -194,13 +194,13 @@ static HEADER *select_msg(void)
           if (menu->current >= menu->top + menu->pagelen)
           {
             menu->top = menu->current;
-            menu->redraw = REDRAW_INDEX | REDRAW_STATUS;
+            menu->redraw |= REDRAW_INDEX | REDRAW_STATUS;
           }
           else
             menu->redraw |= REDRAW_MOTION_RESYNCH;
         }
         else
-          menu->redraw = REDRAW_CURRENT;
+          menu->redraw |= REDRAW_CURRENT;
         break;
 
       case OP_GENERIC_SELECT_ENTRY: