feat(app): 활성 창 캡쳐·캡쳐 목적지 선택·단축키 Ctrl+Alt 재배치 + UX 손질
- Ctrl+Alt+A/Z 맨 앞 창 통째 캡쳐(DWM 확장 프레임 경계), S/X 드래그 캡쳐. A/S 새 대화, Z/X 마지막 대화 - 캡쳐 후 창을 확실히 앞으로(AttachThreadInput), capture.image 에 목적지 path 실어 그 Composer 만 소비 - 드래그 선택영역 원본 밝기·더블버퍼(번쩍임) — code-assistant-v2 복사본에서 이식 - 단축키 Ctrl+Alt+Q/W: Eclipse·ADT·SAP GUI 바인딩 목록 대조해 비어 있는 조합으로 - 버튼 cursor:pointer(Tailwind v4), 가운데 스피너, 스니펫→챗 버튼, 스니펫 검색창 높이 84→88 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
2869985139
commit
47d31dbe06
@@ -6,10 +6,11 @@
|
||||
|
||||
| 방향 | 메시지 | 처리 |
|
||||
|---|---|---|
|
||||
| C#→JS | `{type:"capture.image", dataUrl}` | 프론트가 캡쳐 이미지를 챗 입력창 첨부로 받음 |
|
||||
| C#→JS | `{type:"capture.image", path, dataUrl}` | 프론트가 캡쳐 이미지를 지정된 챗 입력창 첨부로 받음 |
|
||||
|
||||
- `path`: 캡쳐를 받을 route(`/snap/new` 또는 `/snap/s/:id`).
|
||||
- `dataUrl`: `data:image/png;base64,...` (PNG).
|
||||
- App 캡쳐 완료 순서: `ShowPalette()` → `NavigateApp("/snap/new")` → `SendCaptureImage(dataUrl)`. (navigate·소환은 기존 배선.)
|
||||
- App 캡쳐 완료 순서: 창 소환 → 대상 route로 이동 → `{type:"capture.image", path, dataUrl}` 전송.
|
||||
- 기존 메시지(navigate·paste.target·window.*·snippets.* 등)와 같은 리스너 허브에서 `type`으로 분기.
|
||||
|
||||
## C# 표면 (신규/확장)
|
||||
@@ -22,14 +23,15 @@
|
||||
## 프론트 계약 (`bridgeNavigate.ts`)
|
||||
|
||||
```ts
|
||||
// 마지막 캡쳐 이미지 dataUrl 을 1회 소비(마운트 레이스 대비). 없으면 "".
|
||||
export function consumePendingCaptureImage(): string
|
||||
// capture.image 수신 → pendingCaptureImage 갱신 + window.dispatchEvent(new CustomEvent("bridge:captureImage", { detail: { dataUrl } }))
|
||||
// path가 일치하는 마지막 캡쳐 이미지를 1회 소비하고, 다르면 pending을 유지함.
|
||||
export function consumePendingCaptureImage(path: string): string
|
||||
// capture.image 수신 → {path, dataUrl} 보관 + bridge:captureImage 이벤트 발생
|
||||
```
|
||||
|
||||
## 프론트 계약 (`Composer.tsx`)
|
||||
|
||||
- 상태 `imageAttachments: string[]`(dataUrl). 마운트 시 `consumePendingCaptureImage()` push + `bridge:captureImage` 구독 push. X 제거. (data-model.md 규칙.)
|
||||
- `capturePath`와 메시지 `path`가 같은 Composer만 pending 이미지를 소비함. 네비게이션 직전의 다른 Composer가 이미지를 훔치지 않는다.
|
||||
- 새 대화와 기존 대화 모두 캡쳐 이미지를 누적하고 X로 제거할 수 있다.
|
||||
- v1 전송: 텍스트만. 이미지 첨부는 미전송 + 전송 후 정리.
|
||||
|
||||
## 순수 브라우저(dev)
|
||||
|
||||
Reference in New Issue
Block a user