summary refs log tree commit diff stats
path: root/widgets/terminal.go
Commit message (Collapse)AuthorAgeFilesLines
* lib/ui: introduce InvalidatableSimon Ser2019-04-271-21/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Many Drawable implementations have their own Invalidate and OnInvalidate functions, with an unexported onInvalidate field. However OnInvalidate and Invalidate are usually not called in the same goroutine. This results in a race on this field, e.g.: Read at 0x00c000094748 by goroutine 7: git.sr.ht/~sircmpwn/aerc2/widgets.NewDirectoryList.func1() /home/simon/src/aerc2/widgets/dirlist.go:85 +0x56 git.sr.ht/~sircmpwn/aerc2/widgets.(*Spinner).Start.func1() /home/simon/src/aerc2/widgets/spinner.go:93 +0x1bb Previous write at 0x00c000094748 by main goroutine: [failed to restore the stack] Goroutine 7 (running) created at: git.sr.ht/~sircmpwn/aerc2/widgets.(*Spinner).Start() /home/simon/src/aerc2/widgets/spinner.go:46 +0x8f git.sr.ht/~sircmpwn/aerc2/widgets.NewDirectoryList() /home/simon/src/aerc2/widgets/dirlist.go:37 +0x286 git.sr.ht/~sircmpwn/aerc2/widgets.NewAccountView() /home/simon/src/aerc2/widgets/account.go:50 +0x5ca git.sr.ht/~sircmpwn/aerc2/widgets.NewAerc() /home/simon/src/aerc2/widgets/aerc.go:60 +0x800 main.main() /home/simon/src/aerc2/aerc.go:65 +0x33e To fix this, introduce a new type, Invalidatable, which protects the field. Unfortunately the Drawable must be passed to the callback function in Invalidate, so we still need to re-implement this in each Invalidatable user.
* Re-render terminal on invalidateDrew DeVault2019-04-151-4/+13
|
* Clear damage on each terminal.Draw callDrew DeVault2019-04-051-0/+2
|
* Fix wrong row due to typoTom Lebreux2019-04-051-1/+1
| | | | Signed-off-by: Tom Lebreux <tomlebreux@cock.li>
* Fix crash on command not foundDrew DeVault2019-03-301-37/+42
|
* Implement :pipeDrew DeVault2019-03-301-6/+14
|
* Expire status errors on inputDrew DeVault2019-03-211-6/+8
|
* term: don't mess with cursor when unfocusedDrew DeVault2019-03-211-6/+15
|
* Enable alt screen on built-in terminalDrew DeVault2019-03-211-0/+1
|
* Make terminal closure thread safeDrew DeVault2019-03-211-1/+9
|
* Use GetCursorPos instead of stored positionDrew DeVault2019-03-211-1/+4
|
* Skip writes if term is closedDrew DeVault2019-03-211-1/+1
|
* Improve cursor handling in embedded terminalDrew DeVault2019-03-211-8/+19
|
* Fix cursor handling in embedded terminalDrew DeVault2019-03-211-14/+8
|
* Forward key events to child terminalDrew DeVault2019-03-211-1/+135
|
* moar colorsDrew DeVault2019-03-171-4/+10
|
* s/:term-close/:close/gDrew DeVault2019-03-171-1/+0
|
* Wrap Terminal in TermHostDrew DeVault2019-03-171-1/+1
|
* Add :term-closeDrew DeVault2019-03-171-12/+30
|
* Handle terminal title, login shellDrew DeVault2019-03-171-0/+13
|
* Fix terminal colors; wait until tty size is knownDrew DeVault2019-03-171-21/+75
|
* Add basic terminal widgetDrew DeVault2019-03-171-0/+179