Merge pull request #114935 from YeldhamDev/play_pos_marker_fix
Fix wrong play position for the `AnimationMarkerEdit`
This commit is contained in:
@@ -1897,12 +1897,12 @@ void AnimationTimelineEdit::_play_position_draw() {
|
||||
}
|
||||
|
||||
float scale = get_zoom_scale();
|
||||
int h = editor->box_selection_container->get_global_position().y - get_global_position().y;
|
||||
|
||||
int px = (-get_value() + play_position_pos) * scale + get_name_limit();
|
||||
|
||||
if (px >= get_name_limit() && px < (play_position->get_size().width - get_buttons_width())) {
|
||||
int h = editor->box_selection_container->get_global_position().y - get_global_position().y;
|
||||
Color color = get_theme_color(SNAME("accent_color"), EditorStringName(Editor));
|
||||
|
||||
play_position->draw_line(Point2(px, 0), Point2(px, h), color, Math::round(2 * EDSCALE));
|
||||
play_position->draw_texture(
|
||||
get_editor_theme_icon(SNAME("TimelineIndicator")),
|
||||
@@ -8109,9 +8109,10 @@ AnimationTrackEditor::AnimationTrackEditor() {
|
||||
|
||||
marker_edit = memnew(AnimationMarkerEdit);
|
||||
timeline->get_child(0)->add_child(marker_edit);
|
||||
// Prevents the play position from being drawn at the wrong place in specific cases.
|
||||
timeline->get_child(0)->connect(SceneStringName(resized), callable_mp(marker_edit, &AnimationMarkerEdit::update_play_position));
|
||||
marker_edit->set_editor(this);
|
||||
marker_edit->set_timeline(timeline);
|
||||
marker_edit->set_h_size_flags(SIZE_EXPAND_FILL);
|
||||
marker_edit->set_anchors_and_offsets_preset(Control::LayoutPreset::PRESET_FULL_RECT);
|
||||
marker_edit->set_z_index(1); // Ensure marker appears over the animation track editor.
|
||||
marker_edit->connect(SceneStringName(draw), callable_mp(this, &AnimationTrackEditor::_redraw_groups));
|
||||
@@ -8759,13 +8760,11 @@ void AnimationMarkerEdit::_play_position_draw() {
|
||||
}
|
||||
|
||||
float scale = timeline->get_zoom_scale();
|
||||
int h = get_size().height;
|
||||
|
||||
int px = (play_position_pos - timeline->get_value()) * scale + timeline->get_name_limit();
|
||||
|
||||
if (px >= timeline->get_name_limit() && px < (get_size().width - timeline->get_buttons_width())) {
|
||||
Color color = get_theme_color(SNAME("accent_color"), EditorStringName(Editor));
|
||||
play_position->draw_line(Point2(px, 0), Point2(px, h), color, Math::round(2 * EDSCALE));
|
||||
play_position->draw_line(Point2(px, 0), Point2(px, get_size().height), color, Math::round(2 * EDSCALE));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user