All the places in the code where SIGWINCH
is handled:
- gui/curs_lib.c:267
- gui/curs_lib.c:416
- gui/curs_lib.c:847
- index/index.c:1372
- menu/menu.c:365
- pager/pager.c:2634
They call:
All the places in the code where OP_ENTER_COMMAND
is handled.
This may call mutt_parse_rc_line()
which may spawn shells commands.
They call:
- RESIZE
- INVALIDATE
- Repaint on next LOOP
All the places in the code where OP_REDRAW
is handled.
Usually this is the result of Ctrl-L being pressed.
They call:
- RESIZE
- INVALIDATE
- Repaint on next LOOP
All the places in the code where external commands are called directly. e.g. editor, pgp pin entry
Whilst these programs are running the screen could be resized, so assume the worst.
- commands.c:407
- gui/curs_lib.c:363
- ncrypt/crypt_gpgme.c:124
- ncrypt/crypt_gpgme.c:130
- ncrypt/pgp.c:648
- ncrypt/pgp.c:1100
- send/sendmail.c:422
They call:
All the places in the code where NeoMutt is waiting for user input:
They call:
All the places in the code that resize the Message Window:
- gui/curs_lib.c:430 reflow_message_rows(N)
- gui/curs_lib.c:494 reflow_message_rows(1)
- gui/curs_lib.c:868 reflow_message_rows(N)
- gui/curs_lib.c:945 reflow_message_rows(1)
They call mutt_window_reflow_message_rows()
:
All the places where code manually calls mutt_getch()
-
enter.c:697
mutt_enter_string_full()
doesn't DO anything - just waiting for a char after Ctrl-V -
flags.c:449
mutt_change_flag()
NONE
SIGWINCH ignored -
gui/curs_lib.c:447
mutt_yesorno()
- NONE
SIGWINCH handled -
gui/curs_lib.c:676
mutt_buffer_enter_fname()
doesn't DO anything - just waiting for '?' to be pressed -
gui/curs_lib.c:903
mutt_multi_choice()
NONE
SIGWINCH handled -
keymap.c:665
keymap.c:684
km_dokey()
SIGWINCH returned to caller -
menu/menu.c:253
menu_dialog_dokey()
only called bymenu_loop()
All the places where code manually calls km_dokey()
- commands.c:415
mutt_display_message()
handled by caller -mutt_index_menu()
- enter.c:231
handled by caller -mutt_buffer_get_field()
- index/index.c:1376
handled by caller -mutt_index_menu()
- menu/menu.c:330
handled by caller -menu_loop()
- pager/pager.c:2673
handled by caller -mutt_pager()
They call:
- Nothing
This is what should happen for each of the markers above:
mutt_window_reflow()
window_notify_all()
NT_WINDOW
=>WA_RECALC
,WA_REPAINT
Check the size of the screen. Notify all the Windows whose size or position changed. This may have no effect.
mutt_resize_screen()
mutt_window_set_root(cols, rows)
Flag all the visible windows with WA_REPAINT
.
This will force the screen to be redrawn on the next LOOP
window_invalidate_all()
WA_REPAINT
for all visible windows
clearok()
-- no effect untilrefresh()
keypad()
Each event loop will trigger the refreshing of the screen.
window_redraw()
recalc()
for all Windows flaggedWA_RECALC
repaint()
for all Windows flaggedWA_REPAINT
mutt_refresh()
Finally flush the updates to the screen.