런처 클립보드 이미지 미리보기 창을 추가하고 개발 문서 이력 기록 규칙을 반영\n\n- Phase L2-3로 클립보드 이미지 전용 미리보기 창 ClipboardImagePreviewWindow를 신규 추가\n- 원본 해상도 이미지 표시, Ctrl+휠 및 + / - / 0 / F / Esc 단축키 기반 줌 조작 지원\n- PNG, JPEG, BMP 저장과 클립보드 복사 기능을 미리보기 창에서 바로 수행 가능하도록 구현\n- LauncherWindow에서 # 클립보드 이미지 항목 선택 후 Shift+Enter로 미리보기 창을 여는 흐름 추가\n- 단축키 도움말에 클립보드 이미지 미리보기 동작을 반영\n- 런처 CenterOnScreen을 마우스가 위치한 모니터 기준으로 보정해 다중 디스플레이 표시 위치를 개선\n- AGENTS.md에 README.md, docs/DEVELOPMENT.md 이력 선반영 및 업데이트 날짜/시간 기록 규칙을 추가\n- README.md, docs/DEVELOPMENT.md, docs/LAUNCHER_ROADMAP.md에 v0.7.3 이력과 2026-04-04 10:05 (KST) 업데이트 시각 반영\n- dotnet build 경고 0 / 오류 0, dotnet test 436 통과 확인
Some checks failed
Release Gate / gate (push) Has been cancelled
Some checks failed
Release Gate / gate (push) Has been cancelled
This commit is contained in:
@@ -7,6 +7,8 @@ using System.Windows.Media.Animation;
|
||||
using Microsoft.Win32;
|
||||
using AxCopilot.Models;
|
||||
using AxCopilot.ViewModels;
|
||||
using FormsCursor = System.Windows.Forms.Cursor;
|
||||
using FormsScreen = System.Windows.Forms.Screen;
|
||||
|
||||
namespace AxCopilot.Views;
|
||||
|
||||
@@ -676,16 +678,20 @@ public partial class LauncherWindow : Window
|
||||
|
||||
private void CenterOnScreen()
|
||||
{
|
||||
var screen = SystemParameters.WorkArea;
|
||||
var monitor = FormsScreen.FromPoint(FormsCursor.Position);
|
||||
var transform = PresentationSource.FromVisual(this)?.CompositionTarget?.TransformFromDevice ?? Matrix.Identity;
|
||||
var topLeft = transform.Transform(new Point(monitor.WorkingArea.Left, monitor.WorkingArea.Top));
|
||||
var bottomRight = transform.Transform(new Point(monitor.WorkingArea.Right, monitor.WorkingArea.Bottom));
|
||||
var screen = new Rect(topLeft, bottomRight);
|
||||
// ActualHeight/ActualWidth는 첫 Show() 전 레이아웃 패스 이전에 0일 수 있음 → 기본값으로 보호
|
||||
var w = ActualWidth > 0 ? ActualWidth : 640;
|
||||
var h = ActualHeight > 0 ? ActualHeight : 80;
|
||||
Left = (screen.Width - w) / 2 + screen.Left;
|
||||
Left = screen.Left + (screen.Width - w) / 2;
|
||||
Top = _vm.WindowPosition switch
|
||||
{
|
||||
"center" => (screen.Height - h) / 2 + screen.Top,
|
||||
"bottom" => screen.Height * 0.75 + screen.Top,
|
||||
_ => screen.Height * 0.2 + screen.Top, // "center-top" (기본)
|
||||
"center" => screen.Top + (screen.Height - h) / 2,
|
||||
"bottom" => screen.Top + screen.Height * 0.75,
|
||||
_ => screen.Top + screen.Height * 0.2, // "center-top" (기본)
|
||||
};
|
||||
}
|
||||
|
||||
@@ -863,6 +869,12 @@ public partial class LauncherWindow : Window
|
||||
|
||||
if (shift)
|
||||
{
|
||||
if (TryOpenClipboardImagePreview())
|
||||
{
|
||||
e.Handled = true;
|
||||
break;
|
||||
}
|
||||
|
||||
// 퍼지 파일 검색 결과: Shift+Enter → 파일이 있는 폴더 열기
|
||||
if (_vm.SelectedItem?.Data is AxCopilot.Services.IndexEntry shiftEntry)
|
||||
{
|
||||
@@ -1297,7 +1309,7 @@ public partial class LauncherWindow : Window
|
||||
"Ctrl+Shift+E 탐색기에서 열기",
|
||||
"Ctrl+Enter 관리자 실행",
|
||||
"Alt+Enter 속성 보기",
|
||||
"Shift+Enter 대형 텍스트",
|
||||
"Shift+Enter 대형 텍스트 / 클립보드 이미지 미리보기",
|
||||
};
|
||||
|
||||
CustomMessageBox.Show(
|
||||
|
||||
Reference in New Issue
Block a user