Skip to content

fix: スポイトでアートボードの背景色を取得する #1234 - #1241

Draft
haranishi wants to merge 2 commits into
storytold:mainfrom
haranishi:fix/issue-1234-artboard-eyedropper
Draft

haranishi wants to merge 2 commits into
storytold:mainfrom
haranishi:fix/issue-1234-artboard-eyedropper

Conversation

@haranishi

@haranishi haranishi commented Oct 11, 2026 •

Copy link
Copy Markdown
Contributor

What and why

Closes #1234

スポイトでオブジェクトに当たらないクリックを処理せずに終了していたため、アートボードの背景色を取得できませんでした。空のアートボードをクリックすると、白または「色付きの紙」の色を現在の塗り/線に適用します。グラデーションの色取りでは選択中のカラーストップだけを更新し、元のツールへ戻ります。

透明グリッドとアートボード外のクリックは文書を変更しません。ロックされた図形を背景と誤認しないよう、色の参照には表示中の図形を読むヒット判定を追加しました。選択・編集の判定と Alt による外観適用は従来の判定を使います。

公開資料の確認状況:この変更は #1234 に報告された期待動作を実装しています。空白のアートボードの通常クリックで白または色付きの紙を取得すること、さらに線を取り除くことを明記したAdobeの公開ヘルプ・社員回答は見つかっていません。本PRは現在の塗り/線を更新し、線幅は維持します。参照動作の根拠が確認できるまで、ドキュメントで確認済みの互換動作とは扱いません。進捗資料の「done/fixed」を「reference pending/proposed」に修正し、PRも確認待ちのDraftに戻しました。

図形・画像をロック中や隔離の外側から参照する修正は、独立した #1260(Closes #1251)でレビューします。本PRはアートボード背景の挙動について公開根拠を確認するため、Draftを維持しています。

How it was tested

  • エンジンの回帰テスト 5 件:白い紙、色付きの紙を線へ適用、透明グリッド/アートボード外、グラデーションカラーストップ、ロックされた参照元。最初の 4 件は main で失敗し、ロックの誤認も修正前に失敗することを確認しました。

  • ヒット判定 11 件が成功。ロックされた図形・レイヤーは参照でき、選択判定では除外されることと、非表示の図形は参照されないことを確認しています。

  • macOS の実アプリで色の変更、5 pt の線幅維持、Undo/Redo、透明グリッド、グラデーションツールへの復帰、ロックされた参照元の不変性を確認。最初の画面キャプチャも確認済みです。最終版は表示フレームを取得できず、アートボード描画と文書状態で検証しました。

  • cargo xtask ci: macOS の全 7 チェックが成功(5,349 passed / 0 failed / 4 ignored)。

  • 合成 5 万パスの vectorcraft-cli perf を変更前後で実行。クリック判定は 0.55 → 0.59 ms(基準 2 ms)。両実行とも高負荷の警告が出たため、速度差は参考値です。400% ズームは変更前後とも基準を超えていました。

  • GitHub CI: コミット 93a886434208871de8cafb4f16b167ab38e278d2 を指定した Linux + wasm の全チェックが成功(5,336 passed / 0 failed / 4 ignored)。上流の Affinity 3 corpusも成功しました。

  • レビュー対応後のコミット 536a4dda4fcd27fe4738a346c0fa976b796346ce は、macOSの全7チェックが成功(5,349 passed / 0 failed / 4 ignored)。Linux + wasmの全チェックも成功しました(5,336 passed / 0 failed / 4 ignored)。今回の追加変更は資料4ファイルのみです。

Checklist

  • cargo xtask ci passes (fmt, clippy, tests, assets, brands, layers, wasm).
  • 製品コードに panic や未検証のインデックスアクセスを追加していません。
  • Clean-room: Adobe 製品・GPL/AGPL コードを使用していません。
  • 新しいアセットはありません。

@haranishi
haranishi marked this pull request as ready for review October 11, 2026 17:14
@haranishi

Copy link
Copy Markdown
Contributor Author

@echelon #1234 の修正をレビューお願いします。空のアートボードの背景色を取得し、グラデーションのカラーストップやロックされた参照元も確認しています。

対象コミット 93a886434208871de8cafb4f16b167ab38e278d2 の macOS 全7チェックと Linux + wasm 全7チェックが成功しました。上流の Affinity 3 corpus はキュー待ちです。PR本文に実アプリの確認範囲と性能測定の制約を記載しています。

このアカウントは上流リポジトリの読み取り権限のため、正式なレビュアー割り当てができません。コメントでレビューを依頼します。

Copilot AI balanced review requested due to automatic review settings October 11, 2026 17:14

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@bflatastic

Copy link
Copy Markdown
Member

Thanks @haranishi! Before this goes in, I need to pin down the behaviour it copies. Is there a public page (helpx or a forum answer from Adobe staff) saying that Illustrator's Eyedropper, clicked on an empty artboard, applies the artboard's white (or the "colored paper" colour) as the fill and removes the stroke? We follow Illustrator's documented behaviour, and the Eyedropper help I can find only describes sampling objects, and Shift-click for screen colour. If you have a reference, add its URL to the description and I'll review it right away.

@XTRECY-BD

Copy link
Copy Markdown

@bflatastic I also searched a documentation about it but nothing officially mentioned but as a Illustrator user i can assure you that this behavior is correct.

@haranishi

Copy link
Copy Markdown
Contributor Author

Thanks for checking this. I searched the public help and Adobe Community, but have not found a HelpX page or an Adobe staff reply that establishes that exact blank-artboard gesture. The reports I found are user reports and do not establish stroke removal or colored-paper behavior, so I am not using them as parity evidence.

This patch implements the expectation in #1234; it updates the active fill/stroke and preserves stroke weight. It does not remove the stroke. I have made both the missing reference and this distinction explicit in the PR description. Please hold this behavior change pending a documented reference or an explicit behavior decision. I will also correct the progress-document evidence so it does not describe this as documentation-confirmed parity.

@haranishi
haranishi marked this pull request as draft October 11, 2026 18:25

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants