GraphiteEditor / GraphiteEditor/Graphite

Robustness when panning/tilting/zooming during dragging actions

Open
#3,500 0 comments 1 reaction 0 assignees View on GitHub
Good First Issue Paper Cut
Dominant language
Rust
Stars
27.2k
Forks
1.3k
Avg merge
20h 5m
Merged PRs (30d)
57

Description

The user can PTZ...
- Pan (middle mouse drag, or scroll using the scroll wheel)
- Tilt (Alt middle mouse drag)
- Zoom (Ctrl middle mouse drag, or Ctrl scroll with the scroll wheel)
...while performing various dragging operations and those currently don't follow the original document-space start position coordinates:

- [ ] Drag offset (Select tool):

https://github.com/user-attachments/assets/87e63c93-cff5-40e1-a058-75e4461c1e02

- [ ] Selection box (Select tool and Path tool):

https://github.com/user-attachments/assets/20ad0109-e828-4493-a04e-13d97ed8d635

- [ ] Grab transformation (G with an object selected using the Select tool or points selected using the Path tool):

https://github.com/user-attachments/assets/e4699542-8589-419a-889f-5185fe71c62a

https://github.com/user-attachments/assets/93e193c3-e53e-47ee-95f1-ac4745d3fe05

- [ ] Point rotate transformation when tilted (R with points selected using the Path tool):

https://github.com/user-attachments/assets/bd0fe282-395e-4d1b-87d0-51964413a928

- [ ] Scale transformation when tilted (S with an object selected using the Select tool or points selected using the Path tool):

https://github.com/user-attachments/assets/2186ce09-d487-40b5-9e76-71a5f5be981c

https://github.com/user-attachments/assets/7be92f8c-8460-4360-9507-80f4b97237f6

- [ ] Grab transformation when tilted G with an object selected using the Select tool or points selected using the Path tool):

https://github.com/user-attachments/assets/df0f672d-acf5-45e0-8d72-5d27e36937b7

https://github.com/user-attachments/assets/bea3ab95-a230-4b83-8e17-05183ac7f2d6

- [ ] Duplication incorrectly still occurs when Alt middle mouse dragging to tilt the viewport while dragging (once tilting begins, duplication should be canceled):

https://github.com/user-attachments/assets/8d73573d-2552-4cdb-a9f3-f5adb200a926

- [ ] The gray original path ghost outline stays frozen in place under PTZ

https://github.com/user-attachments/assets/f404f74e-af35-47a1-8981-98c1ff1b0baa

- [ ] Transform dial dragging along axis when tilted:

https://github.com/user-attachments/assets/696d6f85-406c-4e71-b603-d88d9586634f

- [ ] Transform dial dragging along axis when panning:

https://github.com/user-attachments/assets/dce212b2-c4b2-4913-a28e-b85ac6626094

- [ ] Transform dial dragging along axis when zooming makes the axis line disappear:

https://github.com/user-attachments/assets/fc8f7cb7-05ef-4a81-bf16-d9cc9b3c3a46

- [ ] Transformation by dragging while holding Shift to lock axes, those axes need to tilt with the canvas:

https://github.com/user-attachments/assets/5ee6dbfb-65a7-476f-87a4-dddc5ab91bdb

- [ ] Transformation by dragging while holding Shift to lock axes, those axes need to pan with the canvas:

https://github.com/user-attachments/assets/3d7ecf31-d90f-4485-84d5-99a1b744042f

- [ ] Transform cage corner rotation while panning, tilting, and zooming:

https://github.com/user-attachments/assets/f941dd0c-478a-4484-9c2e-41363b591dcb

https://github.com/user-attachments/assets/efe907d6-57a9-4d54-a9dd-e76ec927f668

https://github.com/user-attachments/assets/4a8da8eb-0879-46c3-b276-cfaaf1e895d7

- [ ] Transform cage edge scaling while panning, tilting, and zooming:

https://github.com/user-attachments/assets/4c99266e-210d-46f7-83b4-53f661204e86

There may be more I haven't found yet. While solving this issue, you should hopefully become good at finding even more similar cases. This should be solved across multiple PRs each based around several of the related issues shown above, not all in a single PR but also not extremely spread out with one PR per video, since both extremes would make these fixes inconvenient to review.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the listed PTZ interactions while dragging with the Select and Path tools, including grab, rotate, scale, transform cage, and transform dial operations. Compare each result with the original document-space start position and check the listed duplication and ghost-outline cases. Done means the identified dragging operations remain aligned during panning, tilting, and zooming, with the listed inconsistencies resolved across reviewable groups.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
computer-graphics
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.