summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--color.c5
-rw-r--r--curs_lib.c2
-rw-r--r--curs_main.c4
-rw-r--r--init.c24
-rw-r--r--menu.c23
-rw-r--r--mutt.h2
-rw-r--r--mutt_menu.h4
-rw-r--r--pager.c4
-rw-r--r--score.c5
9 files changed, 37 insertions, 36 deletions
diff --git a/color.c b/color.c
index c33d41eb..073b6166 100644
--- 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)
{
diff --git a/curs_lib.c b/curs_lib.c
index 3f91bbab..f56461d3 100644
--- a/curs_lib.c
+++ b/curs_lib.c
@@ -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)
diff --git a/curs_main.c b/curs_main.c
index 3de64d64..3ca1fbbb 100644
--- a/curs_main.c
+++ b/curs_main.c
@@ -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 2a22e087..b0a5572e 100644
--- 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 99af1651..900ea4dd 100644
--- 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 32ece54c..cedd630c 100644
--- 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 */
diff --git a/mutt_menu.h b/mutt_menu.h
index 52ddab12..5a34b1c2 100644
--- a/mutt_menu.h
+++ b/mutt_menu.h
@@ -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 fd507489..89c435de 100644
--- 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 a2718ba1..f0716d2a 100644
--- 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++)
{