From 59aaea27e51da4e024d6db82688811c37bf55873 Mon Sep 17 00:00:00 2001 From: Henry Sloan Date: Sun, 11 Jul 2021 11:25:50 -0400 Subject: [PATCH 1/4] Implement nudging selected layers with arrow keys --- client/web/wasm/src/wrappers.rs | 4 ++++ .../editor/src/document/document_message_handler.rs | 13 ++++++++++++- core/editor/src/input/input_mapper.rs | 8 ++++++++ core/editor/src/input/keyboard.rs | 4 ++++ 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/client/web/wasm/src/wrappers.rs b/client/web/wasm/src/wrappers.rs index e4a16be0ac..a0e9944ba9 100644 --- a/client/web/wasm/src/wrappers.rs +++ b/client/web/wasm/src/wrappers.rs @@ -124,6 +124,10 @@ pub fn translate_key(name: &str) -> Key { "alt" => KeyAlt, "escape" => KeyEscape, "tab" => KeyTab, + "arrowup" => KeyArrowUp, + "arrowdown" => KeyArrowDown, + "arrowleft" => KeyArrowLeft, + "arrowright" => KeyArrowRight, _ => UnknownKey, } } diff --git a/core/editor/src/document/document_message_handler.rs b/core/editor/src/document/document_message_handler.rs index d4c6190f92..48416af25b 100644 --- a/core/editor/src/document/document_message_handler.rs +++ b/core/editor/src/document/document_message_handler.rs @@ -36,6 +36,7 @@ pub enum DocumentMessage { MouseMove, TranslateDown, TranslateUp, + NudgeSelectedLayers(f64, f64), } impl From for DocumentMessage { @@ -351,12 +352,22 @@ impl MessageHandler for DocumentMessageHand self.mouse_pos = ipp.mouse.position; } } + NudgeSelectedLayers(x, y) => { + let paths: Vec> = self.selected_layers_sorted(); + for path in paths { + let operation = DocumentOperation::TransformLayer { + path, + transform: DAffine2::from_translation(DVec2::new(x, y)).to_cols_array(), + }; + responses.push_back(operation.into()); + } + } message => todo!("document_action_handler does not implement: {}", message.to_discriminant().global_name()), } } fn actions(&self) -> ActionList { if self.active_document().layer_data.values().any(|data| data.selected) { - actions!(DocumentMessageDiscriminant; Undo, SelectAllLayers, DeselectAllLayers, DeleteSelectedLayers, DuplicateSelectedLayers, RenderDocument, ExportDocument, NewDocument, CloseActiveDocument, NextDocument, PrevDocument, MouseMove, TranslateUp, TranslateDown, CopySelectedLayers, PasteLayers, ) + actions!(DocumentMessageDiscriminant; Undo, SelectAllLayers, DeselectAllLayers, DeleteSelectedLayers, DuplicateSelectedLayers, RenderDocument, ExportDocument, NewDocument, CloseActiveDocument, NextDocument, PrevDocument, MouseMove, TranslateUp, TranslateDown, CopySelectedLayers, PasteLayers, NudgeSelectedLayers) } else { actions!(DocumentMessageDiscriminant; Undo, SelectAllLayers, DeselectAllLayers, RenderDocument, ExportDocument, NewDocument, CloseActiveDocument, NextDocument, PrevDocument, MouseMove, TranslateUp, TranslateDown, PasteLayers) } diff --git a/core/editor/src/input/input_mapper.rs b/core/editor/src/input/input_mapper.rs index fb797242af..46dd69aaac 100644 --- a/core/editor/src/input/input_mapper.rs +++ b/core/editor/src/input/input_mapper.rs @@ -185,6 +185,14 @@ impl Default for Mapping { entry! {action=DocumentMessage::CloseActiveDocument, key_down=KeyW, modifiers=[KeyShift]}, entry! {action=DocumentMessage::DuplicateSelectedLayers, key_down=KeyD, modifiers=[KeyControl]}, entry! {action=DocumentMessage::CopySelectedLayers, key_down=KeyC, modifiers=[KeyControl]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., -10.), key_down=KeyArrowUp, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., 10.), key_down=KeyArrowDown, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-10., 0.), key_down=KeyArrowLeft, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(10., 0.), key_down=KeyArrowRight, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., -1.), key_down=KeyArrowUp}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., 1.), key_down=KeyArrowDown}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-1., 0.), key_down=KeyArrowLeft}, + entry! {action=DocumentMessage::NudgeSelectedLayers(1., 0.), key_down=KeyArrowRight}, // Global Actions entry! {action=GlobalMessage::LogInfo, key_down=Key1}, entry! {action=GlobalMessage::LogDebug, key_down=Key2}, diff --git a/core/editor/src/input/keyboard.rs b/core/editor/src/input/keyboard.rs index 113991d604..4e8ac12f71 100644 --- a/core/editor/src/input/keyboard.rs +++ b/core/editor/src/input/keyboard.rs @@ -62,6 +62,10 @@ pub enum Key { KeyAlt, KeyEscape, KeyTab, + KeyArrowUp, + KeyArrowDown, + KeyArrowLeft, + KeyArrowRight, // This has to be the last element in the enum. NumKeys, From 10adcf1bc395087b9772a413448a5da9207e2ed9 Mon Sep 17 00:00:00 2001 From: Henry Sloan Date: Sun, 11 Jul 2021 13:14:04 -0400 Subject: [PATCH 2/4] Normalize diagonal nudges and add constants --- core/editor/src/input/input_mapper.rs | 37 +++++++++++++++++++++------ 1 file changed, 29 insertions(+), 8 deletions(-) diff --git a/core/editor/src/input/input_mapper.rs b/core/editor/src/input/input_mapper.rs index 46dd69aaac..6e69332998 100644 --- a/core/editor/src/input/input_mapper.rs +++ b/core/editor/src/input/input_mapper.rs @@ -6,6 +6,11 @@ use super::{ InputPreprocessor, }; +const NUDGE_AMOUNT: f64 = 1.; +const NUDGE_AMOUNT_DIAG: f64 = NUDGE_AMOUNT / 2f64.sqrt(); +const SHIFT_NUDGE_AMOUNT: f64 = 10.; +const SHIFT_NUDGE_AMOUNT_DIAG: f64 = SHIFT_NUDGE_AMOUNT / 2f64.sqrt(); + #[impl_message(Message, InputMapper)] #[derive(PartialEq, Clone, Debug)] pub enum InputMapperMessage { @@ -185,14 +190,30 @@ impl Default for Mapping { entry! {action=DocumentMessage::CloseActiveDocument, key_down=KeyW, modifiers=[KeyShift]}, entry! {action=DocumentMessage::DuplicateSelectedLayers, key_down=KeyD, modifiers=[KeyControl]}, entry! {action=DocumentMessage::CopySelectedLayers, key_down=KeyC, modifiers=[KeyControl]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(0., -10.), key_down=KeyArrowUp, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(0., 10.), key_down=KeyArrowDown, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-10., 0.), key_down=KeyArrowLeft, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(10., 0.), key_down=KeyArrowRight, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(0., -1.), key_down=KeyArrowUp}, - entry! {action=DocumentMessage::NudgeSelectedLayers(0., 1.), key_down=KeyArrowDown}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-1., 0.), key_down=KeyArrowLeft}, - entry! {action=DocumentMessage::NudgeSelectedLayers(1., 0.), key_down=KeyArrowRight}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyShift, KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyShift, KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., -SHIFT_NUDGE_AMOUNT), key_down=KeyArrowUp, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyShift, KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyShift, KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., SHIFT_NUDGE_AMOUNT), key_down=KeyArrowDown, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyShift, KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyShift, KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT, 0.), key_down=KeyArrowLeft, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyShift, KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyShift, KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT, 0.), key_down=KeyArrowRight, modifiers=[KeyShift]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., -NUDGE_AMOUNT), key_down=KeyArrowUp}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(0., NUDGE_AMOUNT), key_down=KeyArrowDown}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT, 0.), key_down=KeyArrowLeft}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT, 0.), key_down=KeyArrowRight}, // Global Actions entry! {action=GlobalMessage::LogInfo, key_down=Key1}, entry! {action=GlobalMessage::LogDebug, key_down=Key2}, From ef0565dbfbcbc324fced6d50379117852f282314 Mon Sep 17 00:00:00 2001 From: Henry Sloan Date: Sun, 11 Jul 2021 15:13:56 -0400 Subject: [PATCH 3/4] Replace sqrt(2.0) with a constant --- core/editor/src/input/input_mapper.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/editor/src/input/input_mapper.rs b/core/editor/src/input/input_mapper.rs index 6e69332998..25246b6820 100644 --- a/core/editor/src/input/input_mapper.rs +++ b/core/editor/src/input/input_mapper.rs @@ -7,9 +7,9 @@ use super::{ }; const NUDGE_AMOUNT: f64 = 1.; -const NUDGE_AMOUNT_DIAG: f64 = NUDGE_AMOUNT / 2f64.sqrt(); +const NUDGE_AMOUNT_DIAG: f64 = NUDGE_AMOUNT * std::f64::consts::FRAC_1_SQRT_2; const SHIFT_NUDGE_AMOUNT: f64 = 10.; -const SHIFT_NUDGE_AMOUNT_DIAG: f64 = SHIFT_NUDGE_AMOUNT / 2f64.sqrt(); +const SHIFT_NUDGE_AMOUNT_DIAG: f64 = SHIFT_NUDGE_AMOUNT * std::f64::consts::FRAC_1_SQRT_2; #[impl_message(Message, InputMapper)] #[derive(PartialEq, Clone, Debug)] From a8089062edc50f22a6b38a4602f0710f94730536 Mon Sep 17 00:00:00 2001 From: Henry Sloan Date: Sun, 11 Jul 2021 21:37:33 -0400 Subject: [PATCH 4/4] Remove normalization of diagonal movement --- core/editor/src/input/input_mapper.rs | 34 +++++++++++++-------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/core/editor/src/input/input_mapper.rs b/core/editor/src/input/input_mapper.rs index 25246b6820..0ab9b87ef6 100644 --- a/core/editor/src/input/input_mapper.rs +++ b/core/editor/src/input/input_mapper.rs @@ -7,9 +7,7 @@ use super::{ }; const NUDGE_AMOUNT: f64 = 1.; -const NUDGE_AMOUNT_DIAG: f64 = NUDGE_AMOUNT * std::f64::consts::FRAC_1_SQRT_2; const SHIFT_NUDGE_AMOUNT: f64 = 10.; -const SHIFT_NUDGE_AMOUNT_DIAG: f64 = SHIFT_NUDGE_AMOUNT * std::f64::consts::FRAC_1_SQRT_2; #[impl_message(Message, InputMapper)] #[derive(PartialEq, Clone, Debug)] @@ -190,29 +188,29 @@ impl Default for Mapping { entry! {action=DocumentMessage::CloseActiveDocument, key_down=KeyW, modifiers=[KeyShift]}, entry! {action=DocumentMessage::DuplicateSelectedLayers, key_down=KeyD, modifiers=[KeyControl]}, entry! {action=DocumentMessage::CopySelectedLayers, key_down=KeyC, modifiers=[KeyControl]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyShift, KeyArrowLeft]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyShift, KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT, -SHIFT_NUDGE_AMOUNT), key_down=KeyArrowUp, modifiers=[KeyShift, KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT, -SHIFT_NUDGE_AMOUNT), key_down=KeyArrowUp, modifiers=[KeyShift, KeyArrowRight]}, entry! {action=DocumentMessage::NudgeSelectedLayers(0., -SHIFT_NUDGE_AMOUNT), key_down=KeyArrowUp, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyShift, KeyArrowLeft]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyShift, KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT, SHIFT_NUDGE_AMOUNT), key_down=KeyArrowDown, modifiers=[KeyShift, KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT, SHIFT_NUDGE_AMOUNT), key_down=KeyArrowDown, modifiers=[KeyShift, KeyArrowRight]}, entry! {action=DocumentMessage::NudgeSelectedLayers(0., SHIFT_NUDGE_AMOUNT), key_down=KeyArrowDown, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyShift, KeyArrowUp]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyShift, KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT, -SHIFT_NUDGE_AMOUNT), key_down=KeyArrowLeft, modifiers=[KeyShift, KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT, SHIFT_NUDGE_AMOUNT), key_down=KeyArrowLeft, modifiers=[KeyShift, KeyArrowDown]}, entry! {action=DocumentMessage::NudgeSelectedLayers(-SHIFT_NUDGE_AMOUNT, 0.), key_down=KeyArrowLeft, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, -SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyShift, KeyArrowUp]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT_DIAG, SHIFT_NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyShift, KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT, -SHIFT_NUDGE_AMOUNT), key_down=KeyArrowRight, modifiers=[KeyShift, KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT, SHIFT_NUDGE_AMOUNT), key_down=KeyArrowRight, modifiers=[KeyShift, KeyArrowDown]}, entry! {action=DocumentMessage::NudgeSelectedLayers(SHIFT_NUDGE_AMOUNT, 0.), key_down=KeyArrowRight, modifiers=[KeyShift]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyArrowLeft]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowUp, modifiers=[KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT, -NUDGE_AMOUNT), key_down=KeyArrowUp, modifiers=[KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT, -NUDGE_AMOUNT), key_down=KeyArrowUp, modifiers=[KeyArrowRight]}, entry! {action=DocumentMessage::NudgeSelectedLayers(0., -NUDGE_AMOUNT), key_down=KeyArrowUp}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyArrowLeft]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowDown, modifiers=[KeyArrowRight]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT, NUDGE_AMOUNT), key_down=KeyArrowDown, modifiers=[KeyArrowLeft]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT, NUDGE_AMOUNT), key_down=KeyArrowDown, modifiers=[KeyArrowRight]}, entry! {action=DocumentMessage::NudgeSelectedLayers(0., NUDGE_AMOUNT), key_down=KeyArrowDown}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyArrowUp]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowLeft, modifiers=[KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT, -NUDGE_AMOUNT), key_down=KeyArrowLeft, modifiers=[KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT, NUDGE_AMOUNT), key_down=KeyArrowLeft, modifiers=[KeyArrowDown]}, entry! {action=DocumentMessage::NudgeSelectedLayers(-NUDGE_AMOUNT, 0.), key_down=KeyArrowLeft}, - entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, -NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyArrowUp]}, - entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT_DIAG, NUDGE_AMOUNT_DIAG), key_down=KeyArrowRight, modifiers=[KeyArrowDown]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT, -NUDGE_AMOUNT), key_down=KeyArrowRight, modifiers=[KeyArrowUp]}, + entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT, NUDGE_AMOUNT), key_down=KeyArrowRight, modifiers=[KeyArrowDown]}, entry! {action=DocumentMessage::NudgeSelectedLayers(NUDGE_AMOUNT, 0.), key_down=KeyArrowRight}, // Global Actions entry! {action=GlobalMessage::LogInfo, key_down=Key1},