chore(textarea): account for margins and padding in cursor offsets

This commit is contained in:
Christian Rocha
2025-01-31 16:21:17 -05:00
parent 841c9ce98c
commit b2e3cc5371
+14 -2
View File
@@ -1441,8 +1441,20 @@ func Blink() tea.Msg {
func (m Model) Cursor() *tea.Cursor {
lineInfo := m.LineInfo()
w := lipgloss.Width
xOffset := lineInfo.CharOffset + w(m.promptView(0)) + w(m.lineNumberView(0, false))
yOffset := m.cursorLineNumber() - m.viewport.YOffset
baseStyle := m.activeStyle().Base
xOffset := lineInfo.CharOffset +
w(m.promptView(0)) +
w(m.lineNumberView(0, false)) +
baseStyle.GetMarginLeft() +
baseStyle.GetPaddingLeft() +
baseStyle.GetBorderLeftSize()
yOffset := m.cursorLineNumber() +
m.viewport.YOffset +
baseStyle.GetMarginTop() +
baseStyle.GetPaddingTop() +
baseStyle.GetBorderTopSize()
c := tea.NewCursor(xOffset, yOffset)
c.Blink = m.Styles.Cursor.Blink