### Godot version

4.2 dev3

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 30.0.15.1403) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

If you have a Method Track with multiple calls to the same method, they are joined together and makes things unreadable:
![image](https://github.com/godotengine/godot/assets/2223172/a2ab8446-28a1-440b-b0d5-5049f5d705b4)
The horizontal line shouldn't be used here. I think it might be a regression.

### Steps to reproduce

1. Add AnimationPlayer
2. Add a Method Track (with Add Track button)
3. Add some key to the track
4. Add another key with the same method

### Minimal reproduction project

N/A
int frame = pos / step_size;
						int prev_frame = prev / step_size;
						bool sub = Math::floor(prev) == Math::floor(pos);
						if (frame != prev_frame && i >= prev_frame_ofs) {
							draw_line(Point2(get_name_limit() + i, 0), Point2(get_name_limit() + i, h), linecolor, Math::round(EDSCALE));
							draw_string(font, Point2(get_name_limit() + i + 3 * EDSCALE, (h - font->get_height(font_size)) / 2 + font->get_ascent(font_size)).floor(), itos(frame), HORIZONTAL_ALIGNMENT_LEFT, zoomw - i, font_size, sub ? color_time_dec : color_time_sec);
							prev_frame_ofs = i + font->get_string_size(itos(frame), HORIZONTAL_ALIGNMENT_LEFT, -1, font_size).x + 5 * EDSCALE;
						}
					}
				}
			} else {
				for (int i = 0; i < zoomw; i++) {
					float pos = get_value() + double(i) / scale;
					float prev = get_value() + (double(i) - 1.0) / scale;
					int sc = int(Math::floor(pos * SC_ADJ));
					int prev_sc = int(Math::floor(prev * SC_ADJ));
					bool sub = (sc % SC_ADJ);
					if ((sc / step) != (prev_sc / step) || (prev_sc < 0 && sc >= 0)) {
						int scd = sc < 0 ? prev_sc : sc;
						draw_line(Point2(get_name_limit() + i, 0), Point2(get_name_limit() + i, h), linecolor, Math::round(EDSCALE));
						draw_string(font, Point2(get_name_limit() + i + 3, (h - font->get_height(font_size)) / 2 + font->get_ascent(font_size)).floor(), String::num((scd - (scd % step)) / double(SC_ADJ), decimals), HORIZONTAL_ALIGNMENT_LEFT, zoomw - i, font_size, sub ? color_time_dec : color_time_sec);
					}
				}
			}
			draw_line(Vector2(0, get_size().height), get_size(), linecolor, Math::round(EDSCALE));
			update_values();
		} break;
	}
}
void AnimationTimelineEdit::set_animation(const Ref<Animation> &p_animation, bool p_read_only) {