Changes between Initial Version and Version 1 of Ticket #4019, comment 2
- Timestamp:
- 09/21/19 18:01:37 (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #4019, comment 2
initial v1 1 1 Before [37ffc024225fd2ef1016babf3cbbeabce4a32899] we had `mc_global.tty.winch_flag` that was set in `sigwinch_handler()`, than it checked some times (note: checked but no reset) and finally reset in `dialog_change_screen_size()`. 2 2 3 Currently we have `tty_got_winch()` function that checks whether SIGWINCH was raised. But this function has side effect: the virtual SIGWINCH flag is reset after read. 'Virtual flag' means the non-emptiness of FIFO. If `tty_got_winch()` is sequentially called several times, only first call can return TRUE (FIFO was not em ty at this moment), other calls return FALSE (read from an empty FIFO). Finally, `dialog_change_screen_size()` may not be called in dialog event loop in `frontend_dlg_run()`. Such case we have if SIGWINCH is raised while subshell is active.3 Currently we have `tty_got_winch()` function that checks whether SIGWINCH was raised. But this function has side effect: the virtual SIGWINCH flag is reset after read. 'Virtual flag' means the non-emptiness of FIFO. If `tty_got_winch()` is sequentially called several times, only first call can return TRUE (FIFO was not empty at this moment), other calls return FALSE (read from an empty FIFO). Finally, `dialog_change_screen_size()` may not be called in dialog event loop in `frontend_dlg_run()`. Such case we have if SIGWINCH is raised while subshell is active. 4 4 5 5 I've tried fix that in