Skip to content

Commit 39c8534

Browse files
0HyperCubeKeavon
authored andcommitted
Add space key & drag to pan the canvas (#364)
1 parent 4629b7c commit 39c8534

File tree

4 files changed

+13
-4
lines changed

4 files changed

+13
-4
lines changed

editor/src/document/movement_handler.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub enum MovementMessage {
2424
EnableSnapping,
2525
DisableSnapping,
2626
ZoomCanvasBegin,
27-
TranslateCanvasEnd,
27+
TransformCanvasEnd,
2828
SetCanvasRotation(f64),
2929
SetCanvasZoom(f64),
3030
IncreaseCanvasZoom,
@@ -79,7 +79,7 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
7979
self.zooming = true;
8080
self.mouse_pos = ipp.mouse.position;
8181
}
82-
TranslateCanvasEnd => {
82+
TransformCanvasEnd => {
8383
layerdata.rotation = layerdata.snapped_angle();
8484
layerdata.snap_rotate = false;
8585
self.translating = false;
@@ -221,7 +221,6 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
221221
fn actions(&self) -> ActionList {
222222
let mut common = actions!(MovementMessageDiscriminant;
223223
MouseMove,
224-
TranslateCanvasEnd,
225224
TranslateCanvasBegin,
226225
RotateCanvasBegin,
227226
ZoomCanvasBegin,
@@ -243,6 +242,12 @@ impl MessageHandler<MovementMessage, (&mut LayerData, &Document, &InputPreproces
243242
);
244243
common.extend(snapping);
245244
}
245+
if self.translating || self.rotating || self.zooming {
246+
let transforming = actions!(MovementMessageDiscriminant;
247+
TransformCanvasEnd,
248+
);
249+
common.extend(transforming);
250+
}
246251
common
247252
}
248253
}

editor/src/input/input_mapper.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,9 @@ impl Default for Mapping {
208208
entry! {action=MovementMessage::ZoomCanvasBegin, key_down=Mmb, modifiers=[KeyShift]},
209209
entry! {action=MovementMessage::ZoomCanvasToFitAll, key_down=Key0, modifiers=[KeyControl]},
210210
entry! {action=MovementMessage::TranslateCanvasBegin, key_down=Mmb},
211-
entry! {action=MovementMessage::TranslateCanvasEnd, key_up=Mmb},
211+
entry! {action=MovementMessage::TransformCanvasEnd, key_up=Mmb},
212+
entry! {action=MovementMessage::TranslateCanvasBegin, key_down=Lmb, modifiers=[KeySpace]},
213+
entry! {action=MovementMessage::TransformCanvasEnd, key_up=Lmb, modifiers=[KeySpace]},
212214
entry! {action=MovementMessage::IncreaseCanvasZoom, key_down=KeyPlus, modifiers=[KeyControl]},
213215
entry! {action=MovementMessage::IncreaseCanvasZoom, key_down=KeyEquals, modifiers=[KeyControl]},
214216
entry! {action=MovementMessage::DecreaseCanvasZoom, key_down=KeyMinus, modifiers=[KeyControl]},

editor/src/input/keyboard.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ pub enum Key {
6363
KeyMinus,
6464
KeyPlus,
6565
KeyShift,
66+
KeySpace,
6667
KeyControl,
6768
KeyDelete,
6869
KeyBackspace,

frontend/wasm/src/wrappers.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ pub fn translate_key(name: &str) -> Key {
137137
"shift" => KeyShift,
138138
// When using linux + chrome + the neo keyboard layout, the shift key is recognized as caps
139139
"capslock" => KeyShift,
140+
" " => KeySpace,
140141
"control" => KeyControl,
141142
"delete" => KeyDelete,
142143
"backspace" => KeyBackspace,

0 commit comments

Comments
 (0)