### Godot version

4.0beta17

### System information

Linux Mint 21.1

### Issue description

When editing animations for the **frame** property of **Sprite2D**, the preview image does not respect the **region_rect** specified in the Sprite2D's properties.

Godot 4.0 (tested with alpha1 to beta17)
![Screenshot from 2023-02-05 21-19-29](https://user-images.githubusercontent.com/2348534/216868394-45a9dc42-ce4b-4b11-82cb-4491aea46d9b.png)

Godot 3.5
![Screenshot from 2023-02-05 21-19-43](https://user-images.githubusercontent.com/2348534/216868543-cff6eb60-a431-4138-8fa6-5c30a54de0e1.png)

As can be seen in the second screenshot, the region rect is applied to the key preview image in Godot 3.5, but is ignored in Godot 4.0.


### Steps to reproduce

Steps:

1. Set a region rect on a Sprite2D node
2. Add Sprite2D.frame as a track to an AnimationPlayer
3. Insert key
4. Key preview does not take region rect into account

### Minimal reproduction project

[MRP.zip](https://github.com/godotengine/godot/files/10637055/MRP.zip)

return false;
}
void AnimationTrackEditColor::draw_key_link(int p_index, float p_pixels_sec, int p_x, int p_next_x, int p_clip_left, int p_clip_right) {
	Ref<Font> font = get_theme_font(SNAME("font"), SNAME("Label"));
	int font_size = get_theme_font_size(SNAME("font_size"), SNAME("Label"));
	int fh = (font->get_height(font_size) * 0.8);
	fh /= 3;
	int x_from = p_x + fh / 2 - 1;
	int x_to = p_next_x - fh / 2 + 1;
	x_from = MAX(x_from, p_clip_left);
	x_to = MIN(x_to, p_clip_right);
	int y_from = (get_size().height - fh) / 2;
	if (x_from > p_clip_right || x_to < p_clip_left) {
		return;
	}
	Vector<Color> color_samples;
	color_samples.append(get_animation()->track_get_key_value(get_track(), p_index));
	if (get_animation()->track_get_type(get_track()) == Animation::TYPE_VALUE) {
		if (get_animation()->track_get_interpolation_type(get_track()) != Animation::INTERPOLATION_NEAREST &&
				(get_animation()->value_track_get_update_mode(get_track()) == Animation::UPDATE_CONTINUOUS ||
						get_animation()->value_track_get_update_mode(get_track()) == Animation::UPDATE_CAPTURE) &&
				!Math::is_zero_approx(get_animation()->track_get_key_transition(get_track(), p_index))) {
			float start_time = get_animation()->track_get_key_time(get_track(), p_index);
			float end_time = get_animation()->track_get_key_time(get_track(), p_index + 1);
			Color color_next = get_animation()->value_track_interpolate(get_track(), end_time);
			if (!color_samples[0].is_equal_approx(color_next)) {
				color_samples.resize(1 + (x_to - x_from) / 64); 
				for (int i = 1; i < color_samples.size(); i++) {