Transform cage incorrect when layer has zero width
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 76/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- rust
調査の方向性
Reproduce the zero-width layer case with the listed rectangle and select-tool steps, then read the transform handling in node-graph/libraries/rendering/src/renderer.rs around line 3293 and editor/src/messages/tool/tool_messages/select_tool.rs around lines 771-774. Compare the two singular-transform paths and verify that the transform cage remains aligned without the reported offset when the scale is zero.
索引モデルが issue の本文から書いたものです。
説明
Reproduction
- New document
- Draw rectangle
- Switch select tool
- s x 0 (or set the scale x to be zero in the properties panel).
- Observe transform bounds/cage offset
Video
https://github.com/user-attachments/assets/56e9ec75-549a-435d-8293-a3cf434e7377
Relevant code
When putting into the click targets, the inverse of the transform is applied. However if det=0 then the identity is used:
https://github.com/GraphiteEditor/Graphite/blob/ae321b3409113b238f1482a5ad71cbfff6929602/node-graph/libraries/rendering/src/renderer.rs#L3293
However in the select tool if the transform det=0, a random small number is added to it and the inverse of that transform is used:
https://github.com/GraphiteEditor/Graphite/blob/ae321b3409113b238f1482a5ad71cbfff6929602/editor/src/messages/tool/tool_messages/select_tool.rs#L771-L774
This has the effect of applying any translation twice for the bounding box when det=0.
- 主要言語
- Rust
- スター
- 27.3k
- フォーク
- 1.3k
- 平均マージ
- 15時間 40分
- マージ済み PR(30日)
- 85
環境構築
このプロジェクトの環境構築ファイルはまだ確認していません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
GraphiteEditor/Graphite のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
GraphiteEditor/Graphite#4601 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
GraphiteEditor/Graphite#4396 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
GraphiteEditor/Graphite#4311 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
GraphiteEditor/Graphite#3939 · コメント 2 件 · リアクション 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 72/100
GraphiteEditor/Graphite#4618 ·
メンテナーはふだん 1 日以内に返信
GraphiteEditor/Graphite の issue をすべて見る
似ている issue
-
`sysknife history --help` says --since takes ISO-8601, and the parser refuses offsets and bare datesオープンbug easy good first issue help wanted
難易度 1/5 1〜3時間 初心者へのやさしさ 94/100
lacs-project/sysknife#519 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
-
area:breg bug criticality:p3 triage:needs-implementation
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
registrystack/registry-stack#1699 ·
メンテナーはふだん 1 日以内に返信
-
documentation
難易度 1/5 1〜3時間 初心者へのやさしさ 84/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
lbjlaq/Antigravity-Manager#3539 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信