fix(deps): update module github.com/charmbracelet/bubbletea to v1.3.4 (main) (#16730)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
pull/15535/head
renovate[bot] 1 year ago committed by GitHub
parent 1b57297a46
commit 2f99d84818
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      go.mod
  2. 4
      go.sum
  3. 2
      vendor/github.com/charmbracelet/bubbletea/inputreader_other.go
  4. 18
      vendor/github.com/charmbracelet/bubbletea/inputreader_windows.go
  5. 29
      vendor/github.com/charmbracelet/bubbletea/tea.go
  6. 9
      vendor/github.com/charmbracelet/bubbletea/tty.go
  7. 2
      vendor/modules.txt

@ -120,7 +120,7 @@ require (
github.com/axiomhq/hyperloglog v0.2.5
github.com/buger/jsonparser v1.1.1
github.com/charmbracelet/bubbles v0.20.0
github.com/charmbracelet/bubbletea v1.3.3
github.com/charmbracelet/bubbletea v1.3.4
github.com/charmbracelet/lipgloss v1.0.1-0.20250110214317-ecc1bd014d51
github.com/coder/quartz v0.1.3
github.com/d4l3k/messagediff v1.2.1

@ -269,8 +269,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE=
github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU=
github.com/charmbracelet/bubbletea v1.3.3 h1:WpU6fCY0J2vDWM3zfS3vIDi/ULq3SYphZhkAGGvmEUY=
github.com/charmbracelet/bubbletea v1.3.3/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
github.com/charmbracelet/bubbletea v1.3.4 h1:kCg7B+jSCFPLYRA52SDZjr51kG/fMUEoPoZrkaDHyoI=
github.com/charmbracelet/bubbletea v1.3.4/go.mod h1:dtcUCyCGEX3g9tosuYiut3MXgY/Jsv9nKVdibKKRRXo=
github.com/charmbracelet/lipgloss v1.0.1-0.20250110214317-ecc1bd014d51 h1:f+0mEkhorXNiBaHb4V9wyd364OH/aF7md7ZngkS+1gU=
github.com/charmbracelet/lipgloss v1.0.1-0.20250110214317-ecc1bd014d51/go.mod h1:QRGthpgH59/perglqXZC8xPHqDGZ9BB45ChJCFEWEMI=
github.com/charmbracelet/x/ansi v0.8.0 h1:9GTq3xq9caJW8ZrBTe0LIe2fvfLR/bYXKTx2llXn7xE=

@ -9,6 +9,6 @@ import (
"github.com/muesli/cancelreader"
)
func newInputReader(r io.Reader) (cancelreader.CancelReader, error) {
func newInputReader(r io.Reader, _ bool) (cancelreader.CancelReader, error) {
return cancelreader.NewReader(r)
}

@ -25,7 +25,7 @@ type conInputReader struct {
var _ cancelreader.CancelReader = &conInputReader{}
func newInputReader(r io.Reader) (cancelreader.CancelReader, error) {
func newInputReader(r io.Reader, enableMouse bool) (cancelreader.CancelReader, error) {
fallback := func(io.Reader) (cancelreader.CancelReader, error) {
return cancelreader.NewReader(r)
}
@ -38,11 +38,21 @@ func newInputReader(r io.Reader) (cancelreader.CancelReader, error) {
return fallback(r)
}
originalMode, err := prepareConsole(conin,
windows.ENABLE_MOUSE_INPUT,
modes := []uint32{
windows.ENABLE_WINDOW_INPUT,
windows.ENABLE_EXTENDED_FLAGS,
)
}
// Since we have options to enable mouse events, [WithMouseCellMotion],
// [WithMouseAllMotion], and [EnableMouseCellMotion],
// [EnableMouseAllMotion], and [DisableMouse], we need to check if the user
// has enabled mouse events and add the appropriate mode accordingly.
// Otherwise, mouse events will be enabled all the time.
if enableMouse {
modes = append(modes, windows.ENABLE_MOUSE_INPUT)
}
originalMode, err := prepareConsole(conin, modes...)
if err != nil {
return nil, fmt.Errorf("failed to prepare console input: %w", err)
}

@ -16,6 +16,7 @@ import (
"io"
"os"
"os/signal"
"runtime"
"runtime/debug"
"sync"
"sync/atomic"
@ -183,6 +184,9 @@ type Program struct {
// fps is the frames per second we should set on the renderer, if
// applicable,
fps int
// mouseMode is true if the program should enable mouse mode on Windows.
mouseMode bool
}
// Quit is a special command that tells the Bubble Tea program to exit.
@ -413,9 +417,25 @@ func (p *Program) eventLoop(model Model, cmds chan Cmd) (Model, error) {
// mouse mode (1006) is a no-op if the terminal doesn't support it.
p.renderer.enableMouseSGRMode()
// XXX: This is used to enable mouse mode on Windows. We need
// to reinitialize the cancel reader to get the mouse events to
// work.
if runtime.GOOS == "windows" && !p.mouseMode {
p.mouseMode = true
p.initCancelReader(true) //nolint:errcheck
}
case disableMouseMsg:
p.disableMouse()
// XXX: On Windows, mouse mode is enabled on the input reader
// level. We need to instruct the input reader to stop reading
// mouse events.
if runtime.GOOS == "windows" && p.mouseMode {
p.mouseMode = false
p.initCancelReader(true) //nolint:errcheck
}
case showCursorMsg:
p.renderer.showCursor()
@ -579,6 +599,11 @@ func (p *Program) Run() (Model, error) {
p.renderer.enableMouseAllMotion()
p.renderer.enableMouseSGRMode()
}
// XXX: Should we enable mouse mode on Windows?
// This needs to happen before initializing the cancel and input reader.
p.mouseMode = p.startupOptions&withMouseCellMotion != 0 || p.startupOptions&withMouseAllMotion != 0
if p.startupOptions&withReportFocus != 0 {
p.renderer.enableReportFocus()
}
@ -607,7 +632,7 @@ func (p *Program) Run() (Model, error) {
// Subscribe to user input.
if p.input != nil {
if err := p.initCancelReader(); err != nil {
if err := p.initCancelReader(false); err != nil {
return model, err
}
}
@ -763,7 +788,7 @@ func (p *Program) RestoreTerminal() error {
if err := p.initTerminal(); err != nil {
return err
}
if err := p.initCancelReader(); err != nil {
if err := p.initCancelReader(false); err != nil {
return err
}
if p.altScreenWasActive {

@ -75,9 +75,14 @@ func (p *Program) restoreInput() error {
}
// initCancelReader (re)commences reading inputs.
func (p *Program) initCancelReader() error {
func (p *Program) initCancelReader(cancel bool) error {
if cancel && p.cancelReader != nil {
p.cancelReader.Cancel()
p.waitForReadLoop()
}
var err error
p.cancelReader, err = newInputReader(p.input)
p.cancelReader, err = newInputReader(p.input, p.mouseMode)
if err != nil {
return fmt.Errorf("error creating cancelreader: %w", err)
}

@ -537,7 +537,7 @@ github.com/charmbracelet/bubbles/runeutil
github.com/charmbracelet/bubbles/spinner
github.com/charmbracelet/bubbles/textinput
github.com/charmbracelet/bubbles/viewport
# github.com/charmbracelet/bubbletea v1.3.3
# github.com/charmbracelet/bubbletea v1.3.4
## explicit; go 1.18
github.com/charmbracelet/bubbletea
# github.com/charmbracelet/lipgloss v1.0.1-0.20250110214317-ecc1bd014d51

Loading…
Cancel
Save