diff --git a/editor/src/messages/input_mapper/default_mapping.rs b/editor/src/messages/input_mapper/default_mapping.rs index 8a9eb7c4..bf30ab03 100644 --- a/editor/src/messages/input_mapper/default_mapping.rs +++ b/editor/src/messages/input_mapper/default_mapping.rs @@ -190,10 +190,6 @@ pub fn default_mapping() -> Mapping { standard!(KeyDown(KeyS); modifiers=[KeyControl], action_dispatch=DocumentMessage::SaveDocument), mac_only!(KeyDown(KeyS); modifiers=[KeyCommand], action_dispatch=DocumentMessage::SaveDocument), ), - entry_multiplatform!( - standard!(KeyDown(Key0); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasToFitAll), - mac_only!(KeyDown(Key0); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasToFitAll), - ), entry_multiplatform!( standard!(KeyDown(KeyD); modifiers=[KeyControl], action_dispatch=DocumentMessage::DuplicateSelectedLayers), mac_only!(KeyDown(KeyD); modifiers=[KeyCommand], action_dispatch=DocumentMessage::DuplicateSelectedLayers), @@ -210,6 +206,18 @@ pub fn default_mapping() -> Mapping { standard!(KeyDown(KeyN); modifiers=[KeyControl, KeyShift], action_dispatch=DocumentMessage::CreateEmptyFolder { container_path: vec![] }), mac_only!(KeyDown(KeyN); modifiers=[KeyCommand, KeyShift], action_dispatch=DocumentMessage::CreateEmptyFolder { container_path: vec![] }), ), + entry_multiplatform!( + standard!(KeyDown(Key0); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasToFitAll), + mac_only!(KeyDown(Key0); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasToFitAll), + ), + entry_multiplatform!( + standard!(KeyDown(Key1); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasTo100Percent), + mac_only!(KeyDown(Key1); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasTo100Percent), + ), + entry_multiplatform!( + standard!(KeyDown(Key2); modifiers=[KeyControl], action_dispatch=DocumentMessage::ZoomCanvasTo200Percent), + mac_only!(KeyDown(Key2); modifiers=[KeyCommand], action_dispatch=DocumentMessage::ZoomCanvasTo200Percent), + ), entry_multiplatform!( standard!(KeyDown(KeyLeftBracket); modifiers=[KeyControl, KeyShift], action_dispatch=DocumentMessage::SelectedLayersLowerToBack), mac_only!(KeyDown(KeyLeftBracket); modifiers=[KeyCommand, KeyShift], action_dispatch=DocumentMessage::SelectedLayersLowerToBack), @@ -285,14 +293,6 @@ pub fn default_mapping() -> Mapping { standard!(KeyDown(KeyMinus); modifiers=[KeyControl], action_dispatch=MovementMessage::DecreaseCanvasZoom { center_on_mouse: false }), mac_only!(KeyDown(KeyMinus); modifiers=[KeyCommand], action_dispatch=MovementMessage::DecreaseCanvasZoom { center_on_mouse: false }), ), - entry_multiplatform!( - standard!(KeyDown(Key1); modifiers=[KeyControl], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 1. }), - mac_only!(KeyDown(Key1); modifiers=[KeyCommand], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 1. }), - ), - entry_multiplatform!( - standard!(KeyDown(Key2); modifiers=[KeyControl], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 2. }), - mac_only!(KeyDown(Key2); modifiers=[KeyCommand], action_dispatch=MovementMessage::SetCanvasZoom { zoom_factor: 2. }), - ), entry!(WheelScroll; modifiers=[KeyControl], action_dispatch=MovementMessage::WheelCanvasZoom), entry!(WheelScroll; modifiers=[KeyShift], action_dispatch=MovementMessage::WheelCanvasTranslate { use_y_as_x: true }), entry!(WheelScroll; action_dispatch=MovementMessage::WheelCanvasTranslate { use_y_as_x: false }), diff --git a/editor/src/messages/input_preprocessor/input_preprocessor_message.rs b/editor/src/messages/input_preprocessor/input_preprocessor_message.rs index 25d48b6a..b9f6ab4d 100644 --- a/editor/src/messages/input_preprocessor/input_preprocessor_message.rs +++ b/editor/src/messages/input_preprocessor/input_preprocessor_message.rs @@ -2,7 +2,6 @@ use crate::messages::input_mapper::utility_types::input_keyboard::{Key, Modifier use crate::messages::input_mapper::utility_types::input_mouse::{EditorMouseState, ViewportBounds}; use crate::messages::prelude::*; -#[doc(inline)] pub use graphene::DocumentResponse; use serde::{Deserialize, Serialize}; diff --git a/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs b/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs index 4e1f3dc9..aaf2aae8 100644 --- a/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs +++ b/editor/src/messages/input_preprocessor/input_preprocessor_message_handler.rs @@ -3,7 +3,6 @@ use crate::messages::input_mapper::utility_types::input_mouse::{MouseKeys, Mouse use crate::messages::portfolio::document::utility_types::misc::KeyboardPlatformLayout; use crate::messages::prelude::*; -#[doc(inline)] pub use graphene::DocumentResponse; use glam::DVec2; diff --git a/editor/src/messages/portfolio/document/artboard/artboard_message.rs b/editor/src/messages/portfolio/document/artboard/artboard_message.rs index 30a91e85..50d33c1f 100644 --- a/editor/src/messages/portfolio/document/artboard/artboard_message.rs +++ b/editor/src/messages/portfolio/document/artboard/artboard_message.rs @@ -19,6 +19,7 @@ pub enum ArtboardMessage { position: (f64, f64), size: (f64, f64), }, + ClearArtboards, DeleteArtboard { artboard: LayerId, }, diff --git a/editor/src/messages/portfolio/document/artboard/artboard_message_handler.rs b/editor/src/messages/portfolio/document/artboard/artboard_message_handler.rs index fb07ce9a..542f7b85 100644 --- a/editor/src/messages/portfolio/document/artboard/artboard_message_handler.rs +++ b/editor/src/messages/portfolio/document/artboard/artboard_message_handler.rs @@ -63,6 +63,11 @@ impl MessageHandler for ArtboardMessageHandler { responses.push_back(DocumentMessage::RenderDocument.into()); } + ClearArtboards => { + for &artboard in self.artboard_ids.iter() { + responses.push_front(ArtboardMessage::DeleteArtboard { artboard }.into()); + } + } DeleteArtboard { artboard } => { self.artboard_ids.retain(|&id| id != artboard); diff --git a/editor/src/messages/portfolio/document/document_message.rs b/editor/src/messages/portfolio/document/document_message.rs index 2324c163..c9c450d4 100644 --- a/editor/src/messages/portfolio/document/document_message.rs +++ b/editor/src/messages/portfolio/document/document_message.rs @@ -169,6 +169,8 @@ pub enum DocumentMessage { layer_path: Vec, layer_metadata: LayerMetadata, }, + ZoomCanvasTo100Percent, + ZoomCanvasTo200Percent, ZoomCanvasToFitAll, } diff --git a/editor/src/messages/portfolio/document/document_message_handler.rs b/editor/src/messages/portfolio/document/document_message_handler.rs index 003abd15..a3d40639 100644 --- a/editor/src/messages/portfolio/document/document_message_handler.rs +++ b/editor/src/messages/portfolio/document/document_message_handler.rs @@ -758,6 +758,12 @@ impl MessageHandler { self.layer_metadata.insert(layer_path, layer_metadata); } + ZoomCanvasTo100Percent => { + responses.push_front(MovementMessage::SetCanvasZoom { zoom_factor: 1. }.into()); + } + ZoomCanvasTo200Percent => { + responses.push_front(MovementMessage::SetCanvasZoom { zoom_factor: 2. }.into()); + } ZoomCanvasToFitAll => { if let Some(bounds) = self.document_bounds(font_cache) { responses.push_back( @@ -785,6 +791,8 @@ impl MessageHandler