From 464d022a8661a66703c4b219bdcf431a5428120b Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Mon, 5 Apr 2021 09:01:08 +1000 Subject: minor refactor --- vendor/github.com/jesseduffield/gocui/gui.go | 47 +++++++++++++++++++ vendor/github.com/jesseduffield/gocui/recording.go | 52 ---------------------- .../github.com/jesseduffield/gocui/tcell_driver.go | 4 +- 3 files changed, 50 insertions(+), 53 deletions(-) delete mode 100644 vendor/github.com/jesseduffield/gocui/recording.go (limited to 'vendor') diff --git a/vendor/github.com/jesseduffield/gocui/gui.go b/vendor/github.com/jesseduffield/gocui/gui.go index 19ea5b2d6..704f744bb 100644 --- a/vendor/github.com/jesseduffield/gocui/gui.go +++ b/vendor/github.com/jesseduffield/gocui/gui.go @@ -7,6 +7,7 @@ package gocui import ( standardErrors "errors" "fmt" + "log" "runtime" "strings" "sync" @@ -1182,3 +1183,49 @@ func IsUnknownView(err error) bool { func IsQuit(err error) bool { return err != nil && err.Error() == ErrQuit.Error() } + +func (g *Gui) replayRecording() { + ticker := time.NewTicker(time.Millisecond) + defer ticker.Stop() + + // The playback could be paused at any time because integration tests run concurrently. + // Therefore we can't just check for a given event whether we've passed its timestamp, + // or else we'll have an explosion of keypresses after the test is resumed. + // We need to check if we've waited long enough since the last event was replayed. + // Only handling key events for now. + for i, event := range g.Recording.KeyEvents { + var prevEventTimestamp int64 = 0 + if i > 0 { + prevEventTimestamp = g.Recording.KeyEvents[i-1].Timestamp + } + timeToWait := (event.Timestamp - prevEventTimestamp) / int64(g.RecordingConfig.Speed) + if i == 0 { + timeToWait += int64(g.RecordingConfig.Leeway) + } + var timeWaited int64 = 0 + middle: + for { + select { + case <-ticker.C: + timeWaited += 1 + if g != nil && timeWaited >= timeToWait { + g.ReplayedEvents.keys <- event + break middle + } + case <-g.stop: + return + } + } + } + + // leaving some time for any handlers to execute before quitting + time.Sleep(time.Second * 1) + + g.Update(func(*Gui) error { + return ErrQuit + }) + + time.Sleep(time.Second * 1) + + log.Fatal("gocui should have already exited") +} diff --git a/vendor/github.com/jesseduffield/gocui/recording.go b/vendor/github.com/jesseduffield/gocui/recording.go deleted file mode 100644 index 2c3241b94..000000000 --- a/vendor/github.com/jesseduffield/gocui/recording.go +++ /dev/null @@ -1,52 +0,0 @@ -package gocui - -import ( - "log" - "time" -) - -func (g *Gui) replayRecording() { - ticker := time.NewTicker(time.Millisecond) - defer ticker.Stop() - - // The playback could be paused at any time because integration tests run concurrently. - // Therefore we can't just check for a given event whether we've passed its timestamp, - // or else we'll have an explosion of keypresses after the test is resumed. - // We need to check if we've waited long enough since the last event was replayed. - // Only handling key events for now. - for i, event := range g.Recording.KeyEvents { - var prevEventTimestamp int64 = 0 - if i > 0 { - prevEventTimestamp = g.Recording.KeyEvents[i-1].Timestamp - } - timeToWait := (event.Timestamp - prevEventTimestamp) / int64(g.RecordingConfig.Speed) - if i == 0 { - timeToWait += int64(g.RecordingConfig.Leeway) - } - var timeWaited int64 = 0 - middle: - for { - select { - case <-ticker.C: - timeWaited += 1 - if g != nil && timeWaited >= timeToWait { - g.ReplayedEvents.keys <- event - break middle - } - case <-g.stop: - return - } - } - } - - // leaving some time for any handlers to execute before quitting - time.Sleep(time.Second * 1) - - g.Update(func(*Gui) error { - return ErrQuit - }) - - time.Sleep(time.Second * 1) - - log.Fatal("gocui should have already exited") -} diff --git a/vendor/github.com/jesseduffield/gocui/tcell_driver.go b/vendor/github.com/jesseduffield/gocui/tcell_driver.go index 637d650c5..12f269f04 100644 --- a/vendor/github.com/jesseduffield/gocui/tcell_driver.go +++ b/vendor/github.com/jesseduffield/gocui/tcell_driver.go @@ -190,7 +190,9 @@ func (g *Gui) pollEvent() GocuiEvent { return GocuiEvent{Type: eventResize, Width: w, Height: h} case *tcell.EventKey: if g.PlayMode == RECORDING { - g.Recording.KeyEvents = append(g.Recording.KeyEvents, NewTcellKeyEventWrapper(tev, g.timeSinceStart())) + g.Recording.KeyEvents = append( + g.Recording.KeyEvents, NewTcellKeyEventWrapper(tev, g.timeSinceStart()), + ) } k := tev.Key() -- cgit v1.2.3