]> 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)
committerRichard Russon <rich@flatcap.org>
Sun, 2 Apr 2017 01:30:00 +0000 (02:30 +0100)
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 abec4ee80649e59d39ace4fb8f15d5280374dca0..7a503d51b1bc031a3ea8620df197d44e5e1d05c9 100644 (file)
--- a/color.c
+++ b/color.c
@@ -19,6 +19,7 @@
 
 #include "mutt.h"
 #include "mutt_curses.h"
+#include "mutt_menu.h"
 #include "mapping.h"
 
 #include <string.h>
@@ -459,7 +460,7 @@ static int _mutt_parse_uncolor (BUFFER *buf, BUFFER *s, unsigned long data,
 
   if (object > MT_COLOR_INDEX_SUBJECT) { /* uncolor index column */
     ColorDefs[object] = 0;
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
     return 0;
   }
 
@@ -524,7 +525,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;
@@ -856,32 +857,32 @@ _mutt_parse_color (BUFFER *buf, BUFFER *s, BUFFER *err,
   {
     r = add_pattern (&ColorIndexList, buf->data, 1,
                    fg, bg, attr, err, 1, match);
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   }
   else if (object == MT_COLOR_INDEX_AUTHOR)
   {
     r = add_pattern (&ColorIndexAuthorList, buf->data, 1,
                    fg, bg, attr, err, 1, match);
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   }
   else if (object == MT_COLOR_INDEX_FLAGS)
   {
     r = add_pattern (&ColorIndexFlagsList, buf->data, 1,
                    fg, bg, attr, err, 1, match);
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   }
   else if (object == MT_COLOR_INDEX_SUBJECT)
   {
     r = add_pattern (&ColorIndexSubjectList, buf->data, 1,
                    fg, bg, attr, err, 1, match);
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   }
 #ifdef USE_NOTMUCH
   else if (object == MT_COLOR_INDEX_TAG)
   {
     r = add_pattern (&ColorIndexTagList, buf->data, 1,
                    fg, bg, attr, err, 1, match);
-    set_option (OPTFORCEREDRAWINDEX);
+    mutt_set_menu_redraw_full (MENU_MAIN);
   }
 #endif
   else if (object == MT_COLOR_QUOTED)
@@ -912,7 +913,7 @@ _mutt_parse_color (BUFFER *buf, BUFFER *s, BUFFER *err,
   {
     ColorDefs[object] = fgbgattr_to_color(fg, bg, attr);
     if (object > MT_COLOR_INDEX_AUTHOR)
-      set_option (OPTFORCEREDRAWINDEX);
+      mutt_set_menu_redraw_full (MENU_MAIN);
   }
 
   return r;
index 42cdace2a9a27beb37eb7cce84ebc9434ac1b316..b006f56eaffc1f30df50c8dd7df47c7d7d019cad 100644 (file)
@@ -98,7 +98,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 c40e70a3b03efe8e13e72c51e78c16b40bde58cf..afe072c8c2bcb03fbcc3cad4c3f2447a33cab394 100644 (file)
@@ -2788,10 +2788,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 c62f8dad511aa615141e2af4dd40f85d1a82e9c2..c550695f8bbd7b61cd7348fd7a79169077d5dfb6 100644 (file)
--- a/init.c
+++ b/init.c
@@ -1524,8 +1524,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;
   }
@@ -1669,7 +1669,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);
@@ -1683,7 +1683,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;
          }
 
@@ -1744,7 +1744,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);
@@ -1998,9 +1998,9 @@ static void 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)
@@ -2188,8 +2188,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;
     }
@@ -2318,8 +2317,7 @@ static int parse_set (BUFFER *tmp, BUFFER *s, unsigned long data, BUFFER *err)
        }
        for (idx = 0; MuttVars[idx].option; idx++)
          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);
@@ -2779,9 +2777,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 0024614c92bd1f42d50bc831061c9cf04ce57e61..829d42ff08f0faaa94158965fd847b328e46880f 100644 (file)
--- a/menu.c
+++ b/menu.c
@@ -839,7 +839,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;
 
@@ -848,6 +857,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
@@ -1162,12 +1177,6 @@ int mutt_menu_loop (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 91dff1d3e20eccb1c425d5c0ba414181d7c13ebd..8030a530ba0dabc70f06a6bc038340fc004646f1 100644 (file)
--- a/mutt.h
+++ b/mutt.h
@@ -573,8 +573,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 5940843b843d42317db380363e76372f82ef171e..74755ccc3c9e797389e20bf8b14a34427b7188bb 100644 (file)
@@ -121,7 +121,9 @@ MUTTMENU *mutt_new_menu(int menu);
 void mutt_menu_destroy(MUTTMENU **p);
 void mutt_push_current_menu (MUTTMENU *);
 void mutt_pop_current_menu (MUTTMENU *);
-void mutt_set_current_menu_redraw (void);
+void mutt_set_current_menu_redraw (int redraw);
+void mutt_set_current_menu_redraw_full ();
+void mutt_set_menu_redraw_full (int);
 int mutt_menu_loop(MUTTMENU *menu);
 
 /* used in both the index and pager index to make an entry. */
diff --git a/pager.c b/pager.c
index 3c9ff10807612b788a212d7837ad5148bdb1f60f..7edd4099d30eaad910f53388ef80c40d68a22b40 100644 (file)
--- a/pager.c
+++ b/pager.c
@@ -2754,10 +2754,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 64d02632e6232e334e5a3ef0d87e1b8da60e8b19..d3da8b11e53349b581bc70e4152e8df3c12bbc47 100644 (file)
--- a/score.c
+++ b/score.c
@@ -18,6 +18,7 @@
 #include "config.h"
 
 #include "mutt.h"
+#include "mutt_menu.h"
 #include "sort.h"
 #include <string.h>
 #include <stdlib.h>
@@ -48,8 +49,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++)
     {