diff --git a/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts b/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts index 92dfb9a9..2dd7cb3e 100644 --- a/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts +++ b/apps/web/src/hooks/timeline/element/use-keyframe-drag.ts @@ -201,7 +201,8 @@ export function useKeyframeDrag({ isKeyframeSelected({ keyframe }), ); - if (!anySelected) { + const isModifierKey = event.shiftKey || event.metaKey || event.ctrlKey; + if (!anySelected && !isModifierKey) { setKeyframeSelection({ keyframes }); } @@ -233,21 +234,21 @@ export function useKeyframeDrag({ Math.abs(event.clientX - mouseDownXRef.current) > DRAG_THRESHOLD_PX; mouseDownXRef.current = null; - if (wasDrag) return; + if (wasDrag) return; - if (event.shiftKey) { - selectKeyframeRange({ - orderedKeyframes, - targetKeyframes: keyframes, - isAdditive: event.metaKey || event.ctrlKey, - }); - return; - } - - toggleKeyframeSelection({ - keyframes, - isMultiKey: event.metaKey || event.ctrlKey, + if (event.shiftKey) { + selectKeyframeRange({ + orderedKeyframes, + targetKeyframes: keyframes, + isAdditive: event.metaKey || event.ctrlKey, }); + return; + } + + toggleKeyframeSelection({ + keyframes, + isMultiKey: event.metaKey || event.ctrlKey, + }); }, [toggleKeyframeSelection, selectKeyframeRange], );