From: Kevin McCarthy Date: Sun, 3 Jun 2018 21:05:13 +0000 (-0700) Subject: Change direct mutt_getch() callers to handle new mail event. X-Git-Tag: mutt-1-11-rel~153 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0182dc8576165ae9dd16a34728406222aed8bc30;p=mutt Change direct mutt_getch() callers to handle new mail event. The inotify handler now returns -2 (timeout) on a new mail event. Change the direct callers to ignore, so prompts aren't strangely aborted. Also, fix mutt_change_flag() to call mutt_refresh() before the prompt. Apparently ncurses getch() was doing this for us, but now that we are polling STDIN instead, the prompt wasn't displaying. --- diff --git a/curs_lib.c b/curs_lib.c index 85d29688..a8635e59 100644 --- a/curs_lib.c +++ b/curs_lib.c @@ -932,7 +932,10 @@ int _mutt_enter_fname (const char *prompt, char *buf, size_t blen, int buffy, in mutt_window_clrtoeol (MuttMessageWindow); mutt_refresh (); - ch = mutt_getch(); + do + { + ch = mutt_getch(); + } while (ch.ch == -2); if (ch.ch < 0) { mutt_window_clearline (MuttMessageWindow, 0); diff --git a/enter.c b/enter.c index f1fb746c..c134091a 100644 --- a/enter.c +++ b/enter.c @@ -703,7 +703,10 @@ int _mutt_enter_string (char *buf, size_t buflen, int col, { event_t event; /*ADDCH (LastKey);*/ - event = mutt_getch (); + do + { + event = mutt_getch (); + } while (event.ch == -2); if (event.ch >= 0) { LastKey = event.ch; diff --git a/flags.c b/flags.c index 489694b0..51fabcbf 100644 --- a/flags.c +++ b/flags.c @@ -346,8 +346,12 @@ int mutt_change_flag (HEADER *h, int bf) mutt_window_mvprintw (MuttMessageWindow, 0, 0, "%s? (D/N/O/r/*/!): ", bf ? _("Set flag") : _("Clear flag")); mutt_window_clrtoeol (MuttMessageWindow); + mutt_refresh (); - event = mutt_getch(); + do + { + event = mutt_getch(); + } while (event.ch == -2); i = event.ch; if (i < 0) { diff --git a/menu.c b/menu.c index dfd8fa75..dd7fad03 100644 --- a/menu.c +++ b/menu.c @@ -917,7 +917,10 @@ static int menu_dialog_dokey (MUTTMENU *menu, int *ip) event_t ch; char *p; - ch = mutt_getch (); + do + { + ch = mutt_getch(); + } while (ch.ch == -2); if (ch.ch < 0) {