]> granicus.if.org Git - neomutt/commitdiff
Remove the OPTFORCEREDRAW options.
authorKevin McCarthy <kevin@8t8.us>
Sat, 1 Apr 2017 01:15:12 +0000 (18:15 -0700)
committerKevin McCarthy <kevin@8t8.us>
Sat, 1 Apr 2017 01:15:12 +0000 (18:15 -0700)
Use the menu stack to flag redraws for the index and pager.

color.c
curs_lib.c
curs_main.c
init.c
menu.c
mutt.h
mutt_menu.h
pager.c
score.c

diff --git a/color.c b/color.c
index c33d41ebc2250cb42219911a87a0b79ed59c4eae..073b6166eda02ace5b22407a8ae9876012c50383 100644 (file)
--- a/color.c
+++ b/color.c
@@ -22,6 +22,7 @@
 
 #include "mutt.h"
 #include "mutt_curses.h"
+#include "mutt_menu.h"
 #include "mapping.h"
 
 #include <string.h>
@@ -494,7 +495,7 @@ static int _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data,
   if (do_cache && !option (OPTNOCURSES))
   {
     int i;
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
     /* force re-caching of index colors */
     for (i = 0; Context && i < Context->msgcount; i++)
       Context->hdrs[i]->pair = 0;
@@ -771,7 +772,7 @@ _mutt_parse_color (BUFFER *buf, BUFFER *s, BUFFER *err,
   else if (object == MT_COLOR_INDEX)
   {
     r = add_pattern (&ColorIndexList, buf->data, 1, fg, bg, attr, err, 1);
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   }
   else if (object == MT_COLOR_QUOTED)
   {
index 3f91bbab61fb1fd12b278d9b92c0519edacb9f65..f56461d3c9c7c4fc0e98e69142be14ae53b6a1c8 100644 (file)
@@ -94,7 +94,7 @@ void mutt_need_hard_redraw (void)
 {
   keypad (stdscr, TRUE);
   clearok (stdscr, TRUE);
-  mutt_set_current_menu_redraw ();
+  mutt_set_current_menu_redraw_full ();
 }
 
 event_t mutt_getch (void)
index 3de64d64040ec90e75eb0ad89cb9dafc7c1452f5..3ca1fbbb6f33cf121ac4603c86433c8f407c2538 100644 (file)
@@ -2053,10 +2053,6 @@ int mutt_index_menu (void)
 
        mutt_enter_command ();
        mutt_check_rescore (Context);
-       if (option (OPTFORCEREDRAWINDEX))
-         menu->redraw = REDRAW_FULL;
-       unset_option (OPTFORCEREDRAWINDEX);
-       unset_option (OPTFORCEREDRAWPAGER);
        break;
 
       case OP_EDIT_MESSAGE:
diff --git a/init.c b/init.c
index 2a22e08723d21903e63f6c66aeedee5270681185..b0a5572e33a757be8cfd9fdc872a86309165d6b0 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1291,8 +1291,8 @@ static int parse_attachments (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER
     print_attach_list(AttachExclude, '-', "A");
     print_attach_list(InlineAllow,   '+', "I");
     print_attach_list(InlineExclude, '-', "I");
-    set_option (OPTFORCEREDRAWINDEX);
-    set_option (OPTFORCEREDRAWPAGER);
+    mutt_set_menu_redraw_full (MENU_MAIN);
+    mutt_set_menu_redraw_full (MENU_PAGER);
     mutt_any_key_to_continue (NULL);
     return 0;
   }
@@ -1436,7 +1436,7 @@ static int parse_unalias (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *er
       {
        for (tmp = Aliases; tmp ; tmp = tmp->next) 
          tmp->del = 1;
-       set_option (OPTFORCEREDRAWINDEX);
+       mutt_set_current_menu_redraw_full ();
       }
       else
        mutt_free_alias (&Aliases);
@@ -1450,7 +1450,7 @@ static int parse_unalias (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *er
          if (CurrentMenu == MENU_ALIAS)
          {
            tmp->del = 1;
-           set_option (OPTFORCEREDRAWINDEX);
+           mutt_set_current_menu_redraw_full ();
            break;
          }
 
@@ -1511,7 +1511,7 @@ static int parse_alias (BUFFER *buf, BUFFER *s, unsigned long data, BUFFER *err)
     /* override the previous value */
     rfc822_free_address (&tmp->addr);
     if (CurrentMenu == MENU_ALIAS)
-      set_option (OPTFORCEREDRAWINDEX);
+      mutt_set_current_menu_redraw_full ();
   }
 
   mutt_extract_token (buf, s, MUTT_TOKEN_QUOTE | MUTT_TOKEN_SPACE | MUTT_TOKEN_SEMICOLON);
@@ -1789,9 +1789,9 @@ static void mutt_restore_default (struct option_t *p)
   }
 
   if (p->flags & R_INDEX)
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   if (p->flags & R_PAGER)
-    set_option (OPTFORCEREDRAWPAGER);
+    mutt_set_menu_redraw_full (MENU_PAGER);
   if (p->flags & R_RESORT_SUB)
     set_option (OPTSORTSUBTHREADS);
   if (p->flags & R_RESORT)
@@ -1972,8 +1972,7 @@ static int parse_setenv(BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
 
     if (found)
     {
-      set_option (OPTFORCEREDRAWINDEX);
-      set_option (OPTFORCEREDRAWPAGER);
+      mutt_set_current_menu_redraw_full ();
       mutt_any_key_to_continue (NULL);
       return 0;
     }
@@ -2102,8 +2101,7 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
        }
        for (idx = 0; MuttVars[idx].option; idx++)
          mutt_restore_default (&MuttVars[idx]);
-       set_option (OPTFORCEREDRAWINDEX);
-       set_option (OPTFORCEREDRAWPAGER);
+       mutt_set_current_menu_redraw_full ();
        set_option (OPTSORTSUBTHREADS);
        set_option (OPTNEEDRESORT);
        set_option (OPTRESORTINIT);
@@ -2569,9 +2567,9 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
     if (!myvar)
     {
       if (MuttVars[idx].flags & R_INDEX)
-        set_option (OPTFORCEREDRAWINDEX);
+        mutt_set_menu_redraw_full (MENU_MAIN);
       if (MuttVars[idx].flags & R_PAGER)
-        set_option (OPTFORCEREDRAWPAGER);
+        mutt_set_menu_redraw_full (MENU_PAGER);
       if (MuttVars[idx].flags & R_RESORT_SUB)
         set_option (OPTSORTSUBTHREADS);
       if (MuttVars[idx].flags & R_RESORT)
diff --git a/menu.c b/menu.c
index 99af16510b25607ed4d31a3e881bc551adbcd3de..900ea4dda33ac1c8b255346dad27db44ec5bbf9c 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -774,7 +774,16 @@ void mutt_pop_current_menu (MUTTMENU *menu)
   }
 }
 
-void mutt_set_current_menu_redraw (void)
+void mutt_set_current_menu_redraw (int redraw)
+{
+  MUTTMENU *current_menu;
+
+  current_menu = get_current_menu ();
+  if (current_menu)
+    current_menu->redraw |= redraw;
+}
+
+void mutt_set_current_menu_redraw_full (void)
 {
   MUTTMENU *current_menu;
 
@@ -783,6 +792,12 @@ void mutt_set_current_menu_redraw (void)
     current_menu->redraw = REDRAW_FULL;
 }
 
+void mutt_set_menu_redraw_full (int menu_type)
+{
+  if (CurrentMenu == menu_type)
+    mutt_set_current_menu_redraw_full ();
+}
+
 
 #define MUTT_SEARCH_UP   1
 #define MUTT_SEARCH_DOWN 2
@@ -1088,12 +1103,6 @@ int mutt_menuLoop (MUTTMENU *menu)
 
       case OP_ENTER_COMMAND:
        mutt_enter_command ();
-       if (option (OPTFORCEREDRAWINDEX))
-       {
-         menu->redraw = REDRAW_FULL;
-         unset_option (OPTFORCEREDRAWINDEX);
-         unset_option (OPTFORCEREDRAWPAGER);
-       }
        break;
 
       case OP_TAG:
diff --git a/mutt.h b/mutt.h
index 32ece54c091dcff939a9ae4dd48dd181c327d5ac..cedd630c01cd330a01ef0c9f23acdf210dc959ab 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -531,8 +531,6 @@ enum
   OPTNEEDRESORT,       /* (pseudo) used to force a re-sort */
   OPTRESORTINIT,       /* (pseudo) used to force the next resort to be from scratch */
   OPTVIEWATTACH,       /* (pseudo) signals that we are viewing attachments */
-  OPTFORCEREDRAWINDEX, /* (pseudo) used to force a redraw in the main index */
-  OPTFORCEREDRAWPAGER, /* (pseudo) used to force a redraw in the pager */
   OPTSORTSUBTHREADS,   /* (pseudo) used when $sort_aux changes */
   OPTNEEDRESCORE,      /* (pseudo) set when the `score' command is used */
   OPTATTACHMSG,                /* (pseudo) used by attach-message */
index 52ddab1294ea095f691b2b28131a0057545c8ede..5a34b1c2d1f536cdd6fc3cc501ba9f79caa83b7d 100644 (file)
@@ -122,7 +122,9 @@ MUTTMENU *mutt_new_menu (int);
 void mutt_menuDestroy (MUTTMENU **);
 void mutt_push_current_menu (MUTTMENU *);
 void mutt_pop_current_menu (MUTTMENU *);
-void mutt_set_current_menu_redraw ();
+void mutt_set_current_menu_redraw (int);
+void mutt_set_current_menu_redraw_full ();
+void mutt_set_menu_redraw_full (int);
 int mutt_menuLoop (MUTTMENU *);
 
 /* used in both the index and pager index to make an entry. */
diff --git a/pager.c b/pager.c
index fd507489245d83490735eb5ce8ffac2f692ac2a2..89c435def418b959b0fa25344d33b131f6acab7c 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -2566,10 +2566,6 @@ search_next:
          ch = 0;
        }
 
-       if (option (OPTFORCEREDRAWPAGER))
-         pager_menu->redraw = REDRAW_FULL;
-       unset_option (OPTFORCEREDRAWINDEX);
-       unset_option (OPTFORCEREDRAWPAGER);
        break;
 
       case OP_FLAG_MESSAGE:
diff --git a/score.c b/score.c
index a2718ba1d440c859c45d7ed7ce0394ad4ed061c2..f0716d2ad3fd6a407d0d65ca5fbe16d6f40376a7 100644 (file)
--- a/score.c
+++ b/score.c
@@ -21,6 +21,7 @@
 #endif
 
 #include "mutt.h"
+#include "mutt_menu.h"
 #include "sort.h"
 #include <string.h>
 #include <stdlib.h>
@@ -51,8 +52,8 @@ void mutt_check_rescore (CONTEXT *ctx)
     }
 
     /* must redraw the index since the user might have %N in it */
-    set_option (OPTFORCEREDRAWINDEX);
-    set_option (OPTFORCEREDRAWPAGER);
+    mutt_set_menu_redraw_full (MENU_MAIN);
+    mutt_set_menu_redraw_full (MENU_PAGER);
 
     for (i = 0; ctx && i < ctx->msgcount; i++)
     {