feat(설정 마우스): 화면 옮기기 버튼 고르기 — 왼 · 가운데 · 오른 · 지도 · CAD · 종단 · 그림 칸 모두 따름 (PLAN 588-4 · 요구 445 C3)

- ☰ [설정] 마우스 탭 = 휠 방향 + 옮기기 버튼 라디오 · 규칙 글 = 고른 버튼 끌기 옮김(가운데는 늘)
- 끌면 옮김 · 덜 끌고 떼면 그 버튼 제 몫(고름 · 메뉴 · CAD Enter) · 오른쪽 끌기 뒤 메뉴 안 뜸
- 왼쪽 옮김은 페이지가 잡은 누름(B05 노드 · 손잡이 · 마커 · 재기 · D03 겹 · 그림 안 도형)에선 비킴
- 자리: B05 · B06 · D03 노선 지도 · CAD · 공용 SVG 확대 · B04 지도 · 3D(오른쪽만) · B05 배수 · 종단 가로 · B08 이정표 · M02 흐름도 · 노임
- 시험: CAD 오른쪽 끌기 옮김 · 옮기기 자리 배선 대조 · 낡은 헬퍼 둘 새 import 대응

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-29 19:08:40 +09:00
co-authored by Claude Opus 5.5
parent 2e4316567c
commit 883a098cd6
17 changed files with 216 additions and 34 deletions
@@ -8,6 +8,7 @@
* ========================================================================== */
import { wheelZoomsIn } from "../../A00_Common/touch_bridge";
import { guardMenuAfterDrag, isAuxPanButton } from "../../A00_Common/input_prefs";
import { createButton, el, showConfirmDialog } from "@ui/ui_template_elements";
import type { CfBox, CfKind, CfLogic, CfPill, CfPort } from "./M02_DF_Model";
import {
@@ -467,7 +468,8 @@ export function renderDiagram(
(ev) => {
// 손가락 빈 곳 끌기도 판 옮기기(기기대응 3-3)
const touchBlank = ev.pointerType === "touch" && (ev.target === view || ev.target === world);
if (ev.button === 1 || (ev.button === 0 && spaceDown) || touchBlank) {
if (isAuxPanButton(ev.button) || (ev.button === 0 && spaceDown) || touchBlank) {
guardMenuAfterDrag(ev);
ev.preventDefault();
ev.stopPropagation();
dragPan(ev);