feat(device): 단축키로만 되던 일에 터치 단추 — 시트 입력줄 단추 줄(찾기 · 모두 같은 값 · 줄바꿈 · 고침 취소 · 오늘 · $ 돌리기) · B05 자유지정 [점 빼기] [끝] · B06 상세 · M02 나무 [여럿] · 공용 .ui-touch-only (기기대응 4-3)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ji4nuyLVHcxrXWHTdb5nRD
This commit is contained in:
@@ -148,7 +148,21 @@ export function createTreePanel(opt: TreePanelOptions): TreePanelHandle {
|
||||
add.hidden = !opt.canEdit;
|
||||
// 「N개 고름」 · 「+」 — 층 단추 줄 오른쪽 끝(30-2 · 부르는 쪽이 붙임)
|
||||
const status = el("span", { className: "m02-tree__picked", attrs: { hidden: "" } });
|
||||
const tools = el("span", { className: "m02-tree__tools", children: [status, add] });
|
||||
// 자판 없는 기기 — Ctrl 누르고 고르기 대신 「여럿」 켜고 톡(기기대응 4-3 · 터치 모드에서만 보임)
|
||||
let multi = false;
|
||||
const multiBtn = createButton({
|
||||
label: "여럿",
|
||||
variant: "ghost",
|
||||
onClick: () => {
|
||||
multi = !multi;
|
||||
multiBtn.classList.toggle("is-on", multi);
|
||||
multiBtn.setAttribute("aria-pressed", String(multi));
|
||||
},
|
||||
});
|
||||
multiBtn.classList.add("ui-touch-only");
|
||||
multiBtn.title = "여럿 고르기 (Ctrl 누르고 누르기와 같음)";
|
||||
multiBtn.setAttribute("aria-pressed", "false");
|
||||
const tools = el("span", { className: "m02-tree__tools", children: [status, multiBtn, add] });
|
||||
|
||||
/* --- 그리기 --- */
|
||||
const canCopy = !!api.paste;
|
||||
@@ -275,7 +289,7 @@ export function createTreePanel(opt: TreePanelOptions): TreePanelHandle {
|
||||
picked,
|
||||
anchor,
|
||||
one.id,
|
||||
{ ctrl: event.ctrlKey || event.metaKey, shift: event.shiftKey },
|
||||
{ ctrl: event.ctrlKey || event.metaKey || multi, shift: event.shiftKey },
|
||||
visibleIds(),
|
||||
);
|
||||
if (got.handled) event.stopImmediatePropagation();
|
||||
|
||||
Reference in New Issue
Block a user