GraphiteEditor / GraphiteEditor/Graphite
Path tool point nudging UX improvements
まだ誰も着手していません。
- 主要言語
- Rust
- スター
- 27.3k
- フォーク
- 1.3k
- 平均マージ
- 20時間 5分
- マージ済み PR(30日)
- 57
説明
Part of #820. Improves upon the MVP implementation in #1068. Requirements for this task are described in https://github.com/GraphiteEditor/Graphite/pull/1068#issuecomment-1509469810:
Nudging a selected handle causes the opposing handle to match its length (like if you were dragging the handle while holding Shift). Let's have this distance mirroring happen only when holding Ctrl (or CtrlShift for 10x nudging).
When dragging or nudging both handles of a manipulator group at once, I'd like the handle to switch from smooth to split so the points are dragged or nudged together rather than trying to maintain their 180° mirroring.
I'd like to be able to Shift-click an already selected handle to deselect it. Currently it seems to deselect the entire shape. And in order to select just one anchor/handle (thus deselecting all others), I seem to have to click twice right now when I'd expect to click only once for that to happen.
When rotating a pair of handles, this shouldn't be happening where their lengths change. We probably want that case to do the same as rotating with just the anchor selected (same as next point).
If you have just one handle selected, it should rotate the handle(s) around the anchor just like you had the anchor selected instead (the behavior for rotating the sole selected anchor is good).
To distill the new desired behavior:
- Points selected in only one manipulator group:
Grabbing and dragging: current behavior is good, except if only the two handles are selected, then the handles should be split so the points can move in unison without having to respect the 180° smooth angle which is weird.Rotation: should always rotate around the anchor regardless of which combination are selected. If a handle is split, only that handle should rotate around its anchor.Scaling: should always scale around the anchor regardless of which combination are selected. If only one handle is selected, only that handle should scale towards the anchor. The current behavior is good when just the anchor (no handles) is selected, but the same should happen if both handles are selected (with or without its anchor) where they scale around the anchor instead of their common center.- Points selected across multiple manipulator groups:
Grabbing and dragging: current behavior is good, except the same as above for cases where the two handles but not the anchor are selected and they should become split rather than doing this funky thing (near the bottom).Rotating: Current behavior is good except that we want two selected handles to become split rather than fighting to remain at 180°.Scaling: Same as rotating.
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず pull request #1068 の MVP 実装と、issue #820 で追跡されているより広範な作業を読み、その後、この issue に記載されているパスツールの操作を再現します。ドラッグ、微調整、回転、拡大縮小、選択が、記載された修飾キーおよびマニピュレーターグループの動作に従い、ハンドルが意図せずミラーリングされたり長さが変更されたりしなければ完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- rust
- 領域
- design
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 35/100