@@ -437,8 +437,9 @@ func (m *Chat) MessageItem(id string) chat.MessageItem {
437// ToggleExpandedSelectedItem expands the selected message item if it is expandable.
437// ToggleExpandedSelectedItem expands the selected message item if it is expandable.
438func (m *Chat) ToggleExpandedSelectedItem() {
438func (m *Chat) ToggleExpandedSelectedItem() {
439 if expandable, ok := m.list.SelectedItem().(chat.Expandable); ok {
439 if expandable, ok := m.list.SelectedItem().(chat.Expandable); ok {
440− expandable.ToggleExpanded()
440+ if !expandable.ToggleExpanded() {
441− m.list.ScrollToIndex(m.list.Selected())
441+ m.list.ScrollToIndex(m.list.Selected())
442 if m.list.AtBottom() {
443 if m.list.AtBottom() {
443 m.list.ScrollToBottom()
444 m.list.ScrollToBottom()
@@ -547,9 +548,10 @@ func (m *Chat) HandleDelayedClick(msg DelayedClickMsg) bool {
547 handled := clickable.HandleMouseClick(ansi.MouseButton1, msg.X, msg.Y)
548 handled := clickable.HandleMouseClick(ansi.MouseButton1, msg.X, msg.Y)
548 // Toggle expansion if applicable.
549 // Toggle expansion if applicable.
549 if expandable, ok := selectedItem.(chat.Expandable); ok {
550 if expandable, ok := selectedItem.(chat.Expandable); ok {
550− expandable.ToggleExpanded()
551+ if !expandable.ToggleExpanded() {
552+ m.list.ScrollToIndex(m.list.Selected())
552− m.list.ScrollToIndex(m.list.Selected())
553 if m.list.AtBottom() {
555 if m.list.AtBottom() {
554 m.list.ScrollToBottom()
556 m.list.ScrollToBottom()