-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
10 changed files
with
247 additions
and
45 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
--- | ||
type: docs | ||
--- | ||
|
||
# Objective | ||
|
||
Enhance path editing, snapping, and visibility features while refining path commitment behavior to prevent unintentional selections. | ||
|
||
## Related Links | ||
|
||
- Branches: Artbox, [feature-snap-to-path-distance](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-snap-to-path-distance?ref_type=heads), [feature-path-editing](https://gitlab.gnome.org/pixelmixer/artbox/-/tree/feature-path-editing?ref_type=heads) | ||
|
||
## Design Revisions | ||
|
||
| **Revision** | **Current Design** | **Issues** | **Changes** | | ||
|--------------------------------|-------------------------------------------------------|-------------------------------------------------------------------|--------------------------------------------------------| | ||
| **1. Path Snap Distance** | Snapping uses a single distance for grid, guides, and paths. | Users can't adjust snapping precision separately for paths. | Introduced an independent `Active Paths` snap preference option. | | ||
| **2. Path Visibility Control** | Created paths aren't visible by default. | Users need to manually enable visibility for new paths. | Added visibility control for paths at creation via a new `Visible` property. | | ||
| **3. Handle Locking** | No lock handles option for path editing. | Limits, making certain edits awkward. | Added a `lock_handles` property to lock handles during editing. | | ||
| **4. Enhanced Movement Controls** | Movement lacks refined state controls for duplicating and snapping. | Limited control and feedback for path manipulation workflows. | Added automatic `Move` mode upon path duplication, intuitive handle and curve point movement, and a "Finish Edit Mode" button. | | ||
| **5. Enter Key Path Commitment** | Enter previously selected enclosed area on path commitment. | Selection behavior was often distracting and unwanted. | Updated Enter to commit path edits without selecting enclosed areas. | | ||
|
||
## MR Description | ||
|
||
This merge request refines snapping, visibility, movement, handle locking, and commit behavior, providing users with greater flexibility and control in path manipulation. | ||
|
||
### Changes | ||
|
||
1. **Path Snap Distance**: | ||
- Extended `gimp_image_snap_point` in `gimpimage-snap.c` to accept new `epsilon_path_x` and `epsilon_path_y` parameters, enabling different snapping tolerances for paths compared to other elements. | ||
- Updated `gimp_display_shell_snap_coords` to include a `snap_path_distance` property, adding flexibility to set path-specific snap distance through the display configuration. | ||
|
||
2. **Path Visibility Control**: | ||
- Added a `visible` property in `GimpToolPathPrivate` to make paths visible upon creation by default. | ||
- Integrated `PROP_VISIBLE` into the vector tool options, along with a "Visible Path" checkbox in the tool options GUI for quick user control over path visibility. | ||
|
||
3. **Handle Locking**: | ||
- Introduced the `lock_handles` property to lock anchor handles during path editing, providing finer control over handle manipulation. | ||
- Added a "Lock Handles" option in the GUI, allowing users to easily enable or disable handle locking. | ||
|
||
4. **Enhanced Movement Controls**: | ||
- Automatically switches to `Move` mode after duplicating a path, simplifying workflow and enhancing path manipulation. | ||
- Updated path handle and curve point interactions for a more intuitive editing experience. | ||
- Added a "Finish Edit Mode" button in vector tool options, allowing users to quickly exit edit mode and return to normal workflows. | ||
|
||
5. **Enter Key Path Commitment**: | ||
- Updated the `Enter` key functionality to commit path edits without selecting the enclosed area, preventing unintended selections that could disrupt workflow, especially with linear paths. | ||
|
||
### Benefit | ||
|
||
- **Improved Snap Control**: Users can adjust snap distances independently for paths, providing more precise control based on element type (e.g., paths vs. grids). | ||
- **Enhanced Workflow with Auto-Visibility**: Paths are automatically visible upon creation, improving user feedback and reducing manual toggling. | ||
- **Streamlined Movement & Editing**: Movement and editing controls are more refined, with automatic `Move` mode for path duplicates, handle locking options, and a quick exit button from edit mode. | ||
- **Refined Path Commitment**: The Enter key now only commits path changes without selecting enclosed areas, reducing distractions and providing a smoother workflow for linear and complex paths. |
Oops, something went wrong.