mirror of
https://github.com/walles/moar.git
synced 2024-10-05 16:07:54 +03:00
Make Windows screen shutdown more robust
Relates to <https://github.com/walles/moar/issues/217>
This commit is contained in:
parent
831c894e69
commit
b2b69852e2
@ -64,17 +64,23 @@ func (screen *UnixScreen) setupTtyInTtyOut() error {
|
||||
}
|
||||
|
||||
func (screen *UnixScreen) restoreTtyInTtyOut() error {
|
||||
errors := []error{}
|
||||
|
||||
stdin := windows.Handle(screen.ttyIn.Fd())
|
||||
err := windows.SetConsoleMode(stdin, screen.oldTtyInMode)
|
||||
if err != nil {
|
||||
return err
|
||||
errors = append(errors, fmt.Errorf("failed to restore stdin console mode: %w", err))
|
||||
}
|
||||
|
||||
stdout := windows.Handle(screen.ttyOut.Fd())
|
||||
err = windows.SetConsoleMode(stdout, screen.oldTtyOutMode)
|
||||
if err != nil {
|
||||
return err
|
||||
errors = append(errors, fmt.Errorf("failed to restore stdout console mode: %w", err))
|
||||
}
|
||||
|
||||
return nil
|
||||
if len(errors) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
return fmt.Errorf("failed to restore terminal state: %v", errors)
|
||||
}
|
||||
|
@ -353,6 +353,10 @@ func (screen *UnixScreen) ShowCursorAt(column int, row int) {
|
||||
}
|
||||
|
||||
func (screen *UnixScreen) mainLoop() {
|
||||
defer func() {
|
||||
log.Debug("Twin screen main loop done")
|
||||
}()
|
||||
|
||||
// "1400" comes from me trying fling scroll operations on my MacBook
|
||||
// trackpad and looking at the high watermark (logged below).
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user