fix: restore mode clicks and compose seat-aware assistant scenes
This commit is contained in:
+24
-4
@@ -5910,22 +5910,34 @@ function installModeChipScroller() {
|
||||
pointerStartX = event.clientX;
|
||||
pointerStartScroll = group.scrollLeft;
|
||||
dragged = false;
|
||||
group.setPointerCapture?.(pointerId);
|
||||
suppressClick = false;
|
||||
});
|
||||
group.addEventListener("pointermove", (event) => {
|
||||
if (pointerId !== event.pointerId) return;
|
||||
if (event.buttons !== 1) {
|
||||
finishPointerDrag(event);
|
||||
return;
|
||||
}
|
||||
const distance = event.clientX - pointerStartX;
|
||||
if (!dragged && Math.abs(distance) < 5) return;
|
||||
dragged = true;
|
||||
group.classList.add("is-dragging");
|
||||
if (!dragged) {
|
||||
// Capturing on pointerdown retargets a normal button click to the rail.
|
||||
// Capture only after movement establishes that this gesture is a drag.
|
||||
dragged = true;
|
||||
group.setPointerCapture?.(pointerId);
|
||||
group.classList.add("is-dragging");
|
||||
}
|
||||
group.scrollLeft = Math.max(0, Math.min(maximumScroll(), pointerStartScroll - distance));
|
||||
updateScrollState();
|
||||
event.preventDefault();
|
||||
});
|
||||
const finishPointerDrag = (event) => {
|
||||
if (pointerId !== event.pointerId) return;
|
||||
group.releasePointerCapture?.(pointerId);
|
||||
const finishedPointerId = pointerId;
|
||||
pointerId = null;
|
||||
if (group.hasPointerCapture?.(finishedPointerId)) {
|
||||
group.releasePointerCapture(finishedPointerId);
|
||||
}
|
||||
group.classList.remove("is-dragging");
|
||||
if (dragged) {
|
||||
suppressClick = true;
|
||||
@@ -5935,6 +5947,7 @@ function installModeChipScroller() {
|
||||
};
|
||||
group.addEventListener("pointerup", finishPointerDrag);
|
||||
group.addEventListener("pointercancel", finishPointerDrag);
|
||||
group.addEventListener("lostpointercapture", finishPointerDrag);
|
||||
group.addEventListener("click", (event) => {
|
||||
if (!suppressClick) return;
|
||||
event.preventDefault();
|
||||
@@ -6424,10 +6437,17 @@ function applyModeCommand(command, modeProfileId = null) {
|
||||
showToast("AI助手正在处理上一条指令,请稍候");
|
||||
return false;
|
||||
}
|
||||
const speech = window.CognitiveAgentSpeech;
|
||||
if (["capturing", "finalizing"].includes(speech?.phase)
|
||||
|| (speech?.phase === "arming" && speech?.inputMode === "manual")) {
|
||||
showToast("请等待语音整理完成后再发送");
|
||||
return false;
|
||||
}
|
||||
if ($("#runButton")?.disabled) {
|
||||
showToast("上一条指令仍在执行,请稍候");
|
||||
return false;
|
||||
}
|
||||
hideModeActionPopover({ immediate: true });
|
||||
const mode = modeProfiles().find((item) => item.id === modeProfileId);
|
||||
setModeRailSelection(mode);
|
||||
closeModeGallery({ restoreFocus: false });
|
||||
|
||||
Reference in New Issue
Block a user