Fix bezier handles not syncing on uniform scale keyframes

Fix reference images being selectable behind UI
This commit is contained in:
JannisX11 2023-04-13 18:44:46 +02:00
parent 5c8cb02640
commit 48b557f1c6
2 changed files with 16 additions and 0 deletions

View File

@ -1102,6 +1102,14 @@ Interface.definePanels(() => {
kf.bezier_left_value[axis_number] = -kf.bezier_right_value[axis_number];
}
}
if (kf.uniform) {
let off_axis_a = (axis_number+1) % 3;
let off_axis_b = (axis_number+2) % 3;
kf.bezier_right_time[off_axis_a] = kf.bezier_right_time[off_axis_b] = kf.bezier_right_time[axis_number];
kf.bezier_right_value[off_axis_a] = kf.bezier_right_value[off_axis_b] = kf.bezier_right_value[axis_number];
kf.bezier_left_time[off_axis_a] = kf.bezier_left_time[off_axis_b] = kf.bezier_left_time[axis_number];
kf.bezier_left_value[off_axis_a] = kf.bezier_left_value[off_axis_b] = kf.bezier_left_value[axis_number];
}
values_changed = true;
}
}

View File

@ -485,6 +485,14 @@ class ReferenceImage {
let rect = this.img.getBoundingClientRect();
if (x > rect.x && y > rect.y && x < rect.right && y < rect.bottom) {
// Check if not clipped behind UI
if (this.layer != 'float') {
let parent = this.node.parentElement;
if (!parent) return false;
let parent_rect = parent.getBoundingClientRect();
if (!(x > parent_rect.x && y > parent_rect.y && x < parent_rect.right && y < parent_rect.bottom)) return false;
}
let lerp_x = Math.getLerp(rect.x, rect.right, x);
let lerp_y = Math.getLerp(rect.y, rect.bottom, y);
if (this.flip_x) lerp_x = 1 - lerp_x;