mirror of
https://github.com/taigrr/wtf
synced 2025-01-18 04:03:14 -08:00
* Prevent flickering in cmdRunner widgets This commit removes flickering in the cmdRunner widgets while preserving the live-update functionality. It amends 45b955 by not redrawing on every write call. Instead, the logic in Refresh is as follows: 1. If the command is already running, it will not try to re-run the command. The default case in the select will trigger a re-draw instead so that new output can be seen. This accommodates long-runing commands eg. tailing a log. 2. If the command is not already running, it will trigger a new run. When the command terminates, it will trigger a re-draw. This means the widget refreshes as soon as possible, to accommodate the original use case of running a command and displaying its output in the widget. In all cases, the widget will not re-draw more often than the refresh interval. This is what eliminates flickering, since the previous implementation before using goroutines was not redrawing more than once per refresh interval. * Remove useless locking in Refresh Since the Refresh command doesn't actually block on anything, and the goroutines have their own locking, Refresh shouldn't lock.