Merge remote-tracking branch 'origin/sub_laptop_4' into main_laptop_1 — 588 단축키 등록부 · UI_Edit 충돌(sub1 고르기 · 속성 판 + sub4 keyIs) 양쪽 살림
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
* ========================================================================== */
|
||||
|
||||
import { createButton, showToast } from "@ui/ui_template_elements";
|
||||
import { keyIs } from "../A00_Common/key_registry";
|
||||
import { createInputField } from "@ui/ui_template_input";
|
||||
import { createSegment } from "@ui/ui_template_segment";
|
||||
import { createText } from "@ui/ui_template_text";
|
||||
@@ -444,7 +445,7 @@ export function createPlanDraw(params: PlanDrawParams): PlanDraw {
|
||||
panelState();
|
||||
},
|
||||
key(event) {
|
||||
if (mode === "draw" && event.key === "Enter") {
|
||||
if (mode === "draw" && keyIs(event, "plan.drawFinish")) {
|
||||
setMode("idle");
|
||||
return true;
|
||||
}
|
||||
@@ -455,7 +456,7 @@ export function createPlanDraw(params: PlanDrawParams): PlanDraw {
|
||||
setMode("idle");
|
||||
return true;
|
||||
}
|
||||
if (mode === "draw" && active !== null && event.key === "Backspace") {
|
||||
if (mode === "draw" && active !== null && keyIs(event, "plan.drawBack")) {
|
||||
const network = params.network();
|
||||
const step =
|
||||
network.lines[active].vertices.length < 2
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
import { showToast } from "@ui/ui_template_elements";
|
||||
import { themeColor } from "@ui/ui_template_palette";
|
||||
import { keyIs } from "../A00_Common/key_registry";
|
||||
import {
|
||||
distanceAlong,
|
||||
lineLength,
|
||||
@@ -527,7 +528,7 @@ export function createPlanEdit(params: PlanEditParams): PlanEdit {
|
||||
lineIndex,
|
||||
key(event) {
|
||||
if (!selected || !params.enabled()) return false;
|
||||
if (event.key === "Delete" && params.editable()) {
|
||||
if (keyIs(event, "plan.delete") && params.editable()) {
|
||||
dropSelected();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -32,6 +32,7 @@ import {
|
||||
import { clearState, readState, writeState } from "../A00_Common/b_page_state";
|
||||
import { currentProjectId } from "../A00_Common/b_project_switch";
|
||||
import { mountGroupStep } from "../A00_Common/group_workflow";
|
||||
import { keyIs } from "../A00_Common/key_registry";
|
||||
import { fetchSessionUser } from "../A06_Login/A06_Login_Api_Fetch";
|
||||
import { heightAt as gridHeightAt } from "../common_util/common_util_surface_sampler";
|
||||
import {
|
||||
@@ -513,16 +514,14 @@ export async function renderD03PlanAnalysis(root: HTMLElement): Promise<void> {
|
||||
if (!root.isConnected) return window.removeEventListener("keydown", onKey);
|
||||
const typing = (event.target as HTMLElement | null)?.closest?.("input, textarea, select");
|
||||
if (typing || !editable) return;
|
||||
const key = event.key.toLowerCase();
|
||||
const ctrl = event.ctrlKey || event.metaKey;
|
||||
const handled =
|
||||
ctrl && key === "z" && !event.shiftKey
|
||||
? (undo(), true)
|
||||
: ctrl && (key === "y" || (key === "z" && event.shiftKey))
|
||||
? (redo(), true)
|
||||
: measuring && event.key === "Escape"
|
||||
? (setMeasure(false), true)
|
||||
: !ctrl && (draw.key(event) || edit.key(event));
|
||||
// 키 = 등록부(588-3 · 한글 자판도 자판 자리로)
|
||||
const handled = keyIs(event, "plan.undo")
|
||||
? (undo(), true)
|
||||
: keyIs(event, "plan.redo")
|
||||
? (redo(), true)
|
||||
: measuring && event.key === "Escape"
|
||||
? (setMeasure(false), true)
|
||||
: draw.key(event) || edit.key(event);
|
||||
if (handled) {
|
||||
event.preventDefault();
|
||||
map.redraw();
|
||||
|
||||
Reference in New Issue
Block a user