mirror of
https://github.com/GraphiteEditor/Graphite.git
synced 2025-08-04 13:30:48 +00:00
Standardize increment snapping to use the Shift key
This commit is contained in:
parent
4de65c292a
commit
f13efd2d06
9 changed files with 21 additions and 34 deletions
|
@ -37,7 +37,7 @@ pub fn input_mappings() -> Mapping {
|
||||||
// ===============
|
// ===============
|
||||||
//
|
//
|
||||||
// NavigationMessage
|
// NavigationMessage
|
||||||
entry!(PointerMove; refresh_keys=[Control], action_dispatch=NavigationMessage::PointerMove { snap: Control }),
|
entry!(PointerMove; refresh_keys=[Shift], action_dispatch=NavigationMessage::PointerMove { snap: Shift }),
|
||||||
entry!(KeyUp(MouseLeft); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
|
entry!(KeyUp(MouseLeft); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
|
||||||
entry!(KeyUp(MouseMiddle); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
|
entry!(KeyUp(MouseMiddle); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
|
||||||
entry!(KeyUp(MouseRight); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
|
entry!(KeyUp(MouseRight); action_dispatch=NavigationMessage::EndCanvasPTZ { abort_transform: false }),
|
||||||
|
@ -96,7 +96,7 @@ pub fn input_mappings() -> Mapping {
|
||||||
entry!(PointerMove; refresh_keys=[Control, Shift], action_dispatch=TransformLayerMessage::PointerMove { slow_key: Shift, increments_key: Control }),
|
entry!(PointerMove; refresh_keys=[Control, Shift], action_dispatch=TransformLayerMessage::PointerMove { slow_key: Shift, increments_key: Control }),
|
||||||
//
|
//
|
||||||
// SelectToolMessage
|
// SelectToolMessage
|
||||||
entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=SelectToolMessage::PointerMove(SelectToolPointerKeys { axis_align: Shift, snap_angle: Control, center: Alt, duplicate: Alt })),
|
entry!(PointerMove; refresh_keys=[Control, Alt, Shift], action_dispatch=SelectToolMessage::PointerMove(SelectToolPointerKeys { axis_align: Shift, snap_angle: Shift, center: Alt, duplicate: Alt })),
|
||||||
entry!(KeyDown(MouseLeft); action_dispatch=SelectToolMessage::DragStart { extend_selection: Shift, remove_from_selection: Alt, select_deepest: Accel, lasso_select: Control, skew: Control }),
|
entry!(KeyDown(MouseLeft); action_dispatch=SelectToolMessage::DragStart { extend_selection: Shift, remove_from_selection: Alt, select_deepest: Accel, lasso_select: Control, skew: Control }),
|
||||||
entry!(KeyUp(MouseLeft); action_dispatch=SelectToolMessage::DragStop { remove_from_selection: Alt }),
|
entry!(KeyUp(MouseLeft); action_dispatch=SelectToolMessage::DragStop { remove_from_selection: Alt }),
|
||||||
entry!(KeyDown(Enter); action_dispatch=SelectToolMessage::Enter),
|
entry!(KeyDown(Enter); action_dispatch=SelectToolMessage::Enter),
|
||||||
|
@ -389,8 +389,9 @@ pub fn input_mappings() -> Mapping {
|
||||||
//
|
//
|
||||||
// NavigationMessage
|
// NavigationMessage
|
||||||
entry!(KeyDown(MouseMiddle); modifiers=[Alt], action_dispatch=NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }),
|
entry!(KeyDown(MouseMiddle); modifiers=[Alt], action_dispatch=NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }),
|
||||||
entry!(KeyDown(MouseMiddle); modifiers=[Shift], action_dispatch=NavigationMessage::BeginCanvasZoom),
|
entry!(KeyDown(MouseLeft); modifiers=[Alt, Space], action_dispatch=NavigationMessage::BeginCanvasTilt { was_dispatched_from_menu: false }),
|
||||||
entry!(KeyDown(MouseLeft); modifiers=[Shift, Space], action_dispatch=NavigationMessage::BeginCanvasZoom),
|
entry!(KeyDown(MouseMiddle); modifiers=[Control], action_dispatch=NavigationMessage::BeginCanvasZoom),
|
||||||
|
entry!(KeyDown(MouseLeft); modifiers=[Control, Space], action_dispatch=NavigationMessage::BeginCanvasZoom),
|
||||||
entry!(KeyDown(MouseMiddle); action_dispatch=NavigationMessage::BeginCanvasPan),
|
entry!(KeyDown(MouseMiddle); action_dispatch=NavigationMessage::BeginCanvasPan),
|
||||||
entry!(KeyDown(MouseLeft); modifiers=[Space], action_dispatch=NavigationMessage::BeginCanvasPan),
|
entry!(KeyDown(MouseLeft); modifiers=[Space], action_dispatch=NavigationMessage::BeginCanvasPan),
|
||||||
entry!(KeyDown(NumpadAdd); modifiers=[Accel], action_dispatch=NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }),
|
entry!(KeyDown(NumpadAdd); modifiers=[Accel], action_dispatch=NavigationMessage::CanvasZoomIncrease { center_on_mouse: false }),
|
||||||
|
|
|
@ -1235,7 +1235,7 @@ impl MessageHandler<DocumentMessage, DocumentMessageData<'_>> for DocumentMessag
|
||||||
// Ensure selection box is kept in sync with the pointer when the PTZ changes
|
// Ensure selection box is kept in sync with the pointer when the PTZ changes
|
||||||
responses.add(SelectToolMessage::PointerMove(SelectToolPointerKeys {
|
responses.add(SelectToolMessage::PointerMove(SelectToolPointerKeys {
|
||||||
axis_align: Key::Shift,
|
axis_align: Key::Shift,
|
||||||
snap_angle: Key::Control,
|
snap_angle: Key::Shift,
|
||||||
center: Key::Alt,
|
center: Key::Alt,
|
||||||
duplicate: Key::Alt,
|
duplicate: Key::Alt,
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -3,7 +3,7 @@ use crate::consts::{
|
||||||
VIEWPORT_ZOOM_TO_FIT_PADDING_SCALE_FACTOR, VIEWPORT_ZOOM_WHEEL_RATE,
|
VIEWPORT_ZOOM_TO_FIT_PADDING_SCALE_FACTOR, VIEWPORT_ZOOM_WHEEL_RATE,
|
||||||
};
|
};
|
||||||
use crate::messages::frontend::utility_types::MouseCursorIcon;
|
use crate::messages::frontend::utility_types::MouseCursorIcon;
|
||||||
use crate::messages::input_mapper::utility_types::input_keyboard::{Key, KeysGroup, MouseMotion};
|
use crate::messages::input_mapper::utility_types::input_keyboard::{Key, MouseMotion};
|
||||||
use crate::messages::input_mapper::utility_types::input_mouse::ViewportPosition;
|
use crate::messages::input_mapper::utility_types::input_mouse::ViewportPosition;
|
||||||
use crate::messages::portfolio::document::navigation::utility_types::NavigationOperation;
|
use crate::messages::portfolio::document::navigation::utility_types::NavigationOperation;
|
||||||
use crate::messages::portfolio::document::utility_types::misc::PTZ;
|
use crate::messages::portfolio::document::utility_types::misc::PTZ;
|
||||||
|
@ -95,14 +95,7 @@ impl MessageHandler<NavigationMessage, NavigationMessageData<'_>> for Navigation
|
||||||
responses.add(FrontendMessage::UpdateInputHints {
|
responses.add(FrontendMessage::UpdateInputHints {
|
||||||
hint_data: HintData(vec![
|
hint_data: HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![HintInfo {
|
HintGroup(vec![HintInfo::keys([Key::Shift], "15° Increments")]),
|
||||||
key_groups: vec![KeysGroup(vec![Key::Control]).into()],
|
|
||||||
key_groups_mac: None,
|
|
||||||
mouse: None,
|
|
||||||
label: "Snap 15°".into(),
|
|
||||||
plus: false,
|
|
||||||
slash: false,
|
|
||||||
}]),
|
|
||||||
]),
|
]),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -125,14 +118,7 @@ impl MessageHandler<NavigationMessage, NavigationMessageData<'_>> for Navigation
|
||||||
responses.add(FrontendMessage::UpdateInputHints {
|
responses.add(FrontendMessage::UpdateInputHints {
|
||||||
hint_data: HintData(vec![
|
hint_data: HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![HintInfo {
|
HintGroup(vec![HintInfo::keys([Key::Shift], "Increments")]),
|
||||||
key_groups: vec![KeysGroup(vec![Key::Control]).into()],
|
|
||||||
key_groups_mac: None,
|
|
||||||
mouse: None,
|
|
||||||
label: "Increments".into(),
|
|
||||||
plus: false,
|
|
||||||
slash: false,
|
|
||||||
}]),
|
|
||||||
]),
|
]),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -496,11 +496,11 @@ impl Fsm for GradientToolFsmState {
|
||||||
let hint_data = match self {
|
let hint_data = match self {
|
||||||
GradientToolFsmState::Ready => HintData(vec![HintGroup(vec![
|
GradientToolFsmState::Ready => HintData(vec![HintGroup(vec![
|
||||||
HintInfo::mouse(MouseMotion::LmbDrag, "Draw Gradient"),
|
HintInfo::mouse(MouseMotion::LmbDrag, "Draw Gradient"),
|
||||||
HintInfo::keys([Key::Shift], "Snap 15°").prepend_plus(),
|
HintInfo::keys([Key::Shift], "15° Increments").prepend_plus(),
|
||||||
])]),
|
])]),
|
||||||
GradientToolFsmState::Drawing => HintData(vec![
|
GradientToolFsmState::Drawing => HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![HintInfo::keys([Key::Shift], "Snap 15°")]),
|
HintGroup(vec![HintInfo::keys([Key::Shift], "15° Increments")]),
|
||||||
]),
|
]),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -265,14 +265,14 @@ impl Fsm for LineToolFsmState {
|
||||||
let hint_data = match self {
|
let hint_data = match self {
|
||||||
LineToolFsmState::Ready => HintData(vec![HintGroup(vec![
|
LineToolFsmState::Ready => HintData(vec![HintGroup(vec![
|
||||||
HintInfo::mouse(MouseMotion::LmbDrag, "Draw Line"),
|
HintInfo::mouse(MouseMotion::LmbDrag, "Draw Line"),
|
||||||
HintInfo::keys([Key::Shift], "Snap 15°").prepend_plus(),
|
HintInfo::keys([Key::Shift], "15° Increments").prepend_plus(),
|
||||||
HintInfo::keys([Key::Alt], "From Center").prepend_plus(),
|
HintInfo::keys([Key::Alt], "From Center").prepend_plus(),
|
||||||
HintInfo::keys([Key::Control], "Lock Angle").prepend_plus(),
|
HintInfo::keys([Key::Control], "Lock Angle").prepend_plus(),
|
||||||
])]),
|
])]),
|
||||||
LineToolFsmState::Drawing => HintData(vec![
|
LineToolFsmState::Drawing => HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![
|
HintGroup(vec![
|
||||||
HintInfo::keys([Key::Shift], "Snap 15°"),
|
HintInfo::keys([Key::Shift], "15° Increments"),
|
||||||
HintInfo::keys([Key::Alt], "From Center"),
|
HintInfo::keys([Key::Alt], "From Center"),
|
||||||
HintInfo::keys([Key::Control], "Lock Angle"),
|
HintInfo::keys([Key::Control], "Lock Angle"),
|
||||||
]),
|
]),
|
||||||
|
|
|
@ -152,16 +152,16 @@ impl Fsm for NavigateToolFsmState {
|
||||||
HintInfo::keys_and_mouse([Key::Space], MouseMotion::LmbDrag, "Pan").prepend_slash(),
|
HintInfo::keys_and_mouse([Key::Space], MouseMotion::LmbDrag, "Pan").prepend_slash(),
|
||||||
]),
|
]),
|
||||||
HintGroup(vec![HintInfo::keys_and_mouse([Key::Alt], MouseMotion::LmbDrag, "Tilt")]),
|
HintGroup(vec![HintInfo::keys_and_mouse([Key::Alt], MouseMotion::LmbDrag, "Tilt")]),
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::LmbDrag, "Zoom"), HintInfo::keys([Key::Control], "Increments").prepend_plus()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::LmbDrag, "Zoom"), HintInfo::keys([Key::Shift], "Increments").prepend_plus()]),
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, "Zoom In"), HintInfo::keys([Key::Shift], "Zoom Out").prepend_plus()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, "Zoom In"), HintInfo::keys([Key::Shift], "Zoom Out").prepend_plus()]),
|
||||||
]),
|
]),
|
||||||
NavigateToolFsmState::Tilting => HintData(vec![
|
NavigateToolFsmState::Tilting => HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![HintInfo::keys([Key::Control], "Snap 15°")]),
|
HintGroup(vec![HintInfo::keys([Key::Shift], "15° Increments")]),
|
||||||
]),
|
]),
|
||||||
NavigateToolFsmState::Zooming => HintData(vec![
|
NavigateToolFsmState::Zooming => HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![HintInfo::keys([Key::Control], "Increments")]),
|
HintGroup(vec![HintInfo::keys([Key::Shift], "Increments")]),
|
||||||
]),
|
]),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1206,7 +1206,7 @@ impl Fsm for PathToolFsmState {
|
||||||
if colinear != ManipulatorAngle::Free {
|
if colinear != ManipulatorAngle::Free {
|
||||||
hints.push(HintInfo::keys([Key::Alt], "Equidistant Handles"));
|
hints.push(HintInfo::keys([Key::Alt], "Equidistant Handles"));
|
||||||
}
|
}
|
||||||
hints.push(HintInfo::keys([Key::Shift], "Snap 15°"));
|
hints.push(HintInfo::keys([Key::Shift], "15° Increments"));
|
||||||
hints.push(HintInfo::keys([Key::Control], "Lock Angle"));
|
hints.push(HintInfo::keys([Key::Control], "Lock Angle"));
|
||||||
hints.push(drag_anchor);
|
hints.push(drag_anchor);
|
||||||
hints
|
hints
|
||||||
|
@ -1216,7 +1216,7 @@ impl Fsm for PathToolFsmState {
|
||||||
if colinear != ManipulatorAngle::Free {
|
if colinear != ManipulatorAngle::Free {
|
||||||
hints.push(HintInfo::keys([Key::Alt], "Equidistant Handles"));
|
hints.push(HintInfo::keys([Key::Alt], "Equidistant Handles"));
|
||||||
}
|
}
|
||||||
hints.push(HintInfo::keys([Key::Shift], "Snap 15°"));
|
hints.push(HintInfo::keys([Key::Shift], "15° Increments"));
|
||||||
hints.push(HintInfo::keys([Key::Control], "Lock Angle"));
|
hints.push(HintInfo::keys([Key::Control], "Lock Angle"));
|
||||||
hints.push(drag_anchor);
|
hints.push(drag_anchor);
|
||||||
hints
|
hints
|
||||||
|
|
|
@ -1138,7 +1138,7 @@ impl Fsm for PenToolFsmState {
|
||||||
HintInfo::keys([Key::Escape], "").prepend_slash(),
|
HintInfo::keys([Key::Escape], "").prepend_slash(),
|
||||||
HintInfo::keys([Key::Enter], "End Path").prepend_slash(),
|
HintInfo::keys([Key::Enter], "End Path").prepend_slash(),
|
||||||
]),
|
]),
|
||||||
HintGroup(vec![HintInfo::keys([Key::Shift], "Snap 15°"), HintInfo::keys([Key::Control], "Lock Angle")]),
|
HintGroup(vec![HintInfo::keys([Key::Shift], "15° Increments"), HintInfo::keys([Key::Control], "Lock Angle")]),
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, "Add Sharp Point"), HintInfo::mouse(MouseMotion::LmbDrag, "Add Smooth Point")]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, "Add Sharp Point"), HintInfo::mouse(MouseMotion::LmbDrag, "Add Smooth Point")]),
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, ""), HintInfo::mouse(MouseMotion::LmbDrag, "Bend Prev. Point").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Lmb, ""), HintInfo::mouse(MouseMotion::LmbDrag, "Bend Prev. Point").prepend_slash()]),
|
||||||
]),
|
]),
|
||||||
|
@ -1159,7 +1159,7 @@ impl Fsm for PenToolFsmState {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let mut common_hints = vec![HintInfo::keys([Key::Shift], "Snap 15°"), HintInfo::keys([Key::Control], "Lock Angle")];
|
let mut common_hints = vec![HintInfo::keys([Key::Shift], "15° Increments"), HintInfo::keys([Key::Control], "Lock Angle")];
|
||||||
let hold_group = match mode {
|
let hold_group = match mode {
|
||||||
HandleMode::Free => common_hints,
|
HandleMode::Free => common_hints,
|
||||||
HandleMode::ColinearLocked => {
|
HandleMode::ColinearLocked => {
|
||||||
|
|
|
@ -1368,7 +1368,7 @@ impl Fsm for SelectToolFsmState {
|
||||||
SelectToolFsmState::RotatingBounds => {
|
SelectToolFsmState::RotatingBounds => {
|
||||||
let hint_data = HintData(vec![
|
let hint_data = HintData(vec![
|
||||||
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
HintGroup(vec![HintInfo::mouse(MouseMotion::Rmb, ""), HintInfo::keys([Key::Escape], "Cancel").prepend_slash()]),
|
||||||
HintGroup(vec![HintInfo::keys([Key::Control], "Snap")]),
|
HintGroup(vec![HintInfo::keys([Key::Shift], "15° Increments")]),
|
||||||
]);
|
]);
|
||||||
responses.add(FrontendMessage::UpdateInputHints { hint_data });
|
responses.add(FrontendMessage::UpdateInputHints { hint_data });
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue