mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2026-09-30 03:48:12 +08:00
Make the transform cage show/hide resize grips as space allows (#2209)
* Changes rotation handles to be around overlay squares Fixes https://discord.com/channels/731730685944922173/931942323644928040/1330785941786329209 * Fix zero width objects not being selected by slightly nudging the transform * Follow the categorical limits to render overlay quads As discussed here: https://discord.com/channels/731730685944922173/931942323644928040/1331166336923074600 * Replace area based calculations with edge based calculations * Fix 3rd category vis * Code review * Add missing powi(2) * Fixes to handle logic * Remove single axis prioritisation * Explicitly check for distance to find nearest handle * Replace threshold check based on corner vis bounds * Fix discrepancy at h=12px * Allow grab when box is too small by disabling resizing within bounds * Replace inside resize pixel limit * Code review --------- Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
co-authored by
Keavon Chambers
parent
c5a3c32114
commit
a0f8f89e71
@@ -22,6 +22,7 @@ use graphene_core::text::load_face;
|
||||
use graphene_std::renderer::Rect;
|
||||
use graphene_std::vector::misc::BooleanOperation;
|
||||
|
||||
use glam::DMat2;
|
||||
use std::fmt;
|
||||
|
||||
#[derive(Default)]
|
||||
@@ -456,10 +457,13 @@ impl Fsm for SelectToolFsmState {
|
||||
.selected_visible_and_unlocked_layers(&document.network_interface)
|
||||
.find(|layer| !document.network_interface.is_artboard(&layer.to_node(), &[]))
|
||||
.map(|layer| document.metadata().transform_to_viewport(layer));
|
||||
let transform = transform.unwrap_or(DAffine2::IDENTITY);
|
||||
|
||||
// Check if the matrix is not invertible
|
||||
let mut transform = transform.unwrap_or(DAffine2::IDENTITY);
|
||||
if transform.matrix2.determinant() == 0. {
|
||||
return self;
|
||||
transform.matrix2 += DMat2::IDENTITY * 1e-4; // TODO: Is this the cleanest way to handle this?
|
||||
}
|
||||
|
||||
let bounds = document
|
||||
.network_interface
|
||||
.selected_nodes(&[])
|
||||
|
||||
Reference in New Issue
Block a user