Change selection to only the duplicated layer (not both layers) when using Ctrl+D (#1118)
* Nudging is now based on local pixel dimensions * Brush tool live preview (#1116) * Disable vector preview for brush tool * Fix brush preview * Fix warping * Left and right square brackets to change size * Add linear interpolation * Modfiy existing selected brush layer * Resolve warnings --------- Co-authored-by: Dennis Kobert <dennis@kobert.dev> Co-authored-by: Keavon Chambers <keavon@keavon.com> * Duplicating a layer selects only new layer * Add Ctrl+J duplicate alias hotkey --------- Co-authored-by: 0HyperCube <78500760+0HyperCube@users.noreply.github.com> Co-authored-by: Dennis Kobert <dennis@kobert.dev> Co-authored-by: Keavon Chambers <keavon@keavon.com>
This commit is contained in:
parent
fa23e9d55b
commit
4c9ef0fe6c
|
|
@ -242,6 +242,7 @@ pub fn default_mapping() -> Mapping {
|
|||
entry!(KeyDown(KeyA); modifiers=[Accel], action_dispatch=DocumentMessage::SelectAllLayers),
|
||||
entry!(KeyDown(KeyS); modifiers=[Accel], action_dispatch=DocumentMessage::SaveDocument),
|
||||
entry!(KeyDown(KeyD); modifiers=[Accel], action_dispatch=DocumentMessage::DuplicateSelectedLayers),
|
||||
entry!(KeyDown(KeyJ); modifiers=[Accel], action_dispatch=DocumentMessage::DuplicateSelectedLayers),
|
||||
entry!(KeyDown(KeyG); modifiers=[Accel], action_dispatch=DocumentMessage::GroupSelectedLayers),
|
||||
entry!(KeyDown(KeyG); modifiers=[Accel, Shift], action_dispatch=DocumentMessage::UngroupSelectedLayers),
|
||||
entry!(KeyDown(KeyN); modifiers=[Accel, Shift], action_dispatch=DocumentMessage::CreateEmptyFolder { container_path: vec![] }),
|
||||
|
|
|
|||
|
|
@ -348,6 +348,8 @@ impl MessageHandler<DocumentMessage, (u64, &InputPreprocessorMessageHandler, &Pe
|
|||
}
|
||||
DuplicateSelectedLayers => {
|
||||
self.backup(responses);
|
||||
responses.push_front(SetSelectedLayers { replacement_selected_layers: vec![] }.into());
|
||||
self.layer_range_selection_reference.clear();
|
||||
for path in self.selected_layers_sorted() {
|
||||
responses.push_back(DocumentOperation::DuplicateLayer { path: path.to_vec() }.into());
|
||||
}
|
||||
|
|
|
|||
|
|
@ -239,12 +239,10 @@ mod tests {
|
|||
#[allow(unused_imports)]
|
||||
use crate::value::ClonedNode;
|
||||
|
||||
fn string_data(string: &str) -> Vec<u8> {
|
||||
string.split(',').map(|s| s.parse().unwrap()).collect::<Vec<u8>>()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn brightness_contrast_legacy_tests() {
|
||||
let string_data = |string: &str| string.split(',').map(|s| s.parse().unwrap()).collect::<Vec<u8>>();
|
||||
|
||||
let brightness_contrast_legacy_map = |brightness, contrast| -> [u8; 256] {
|
||||
let brightness = ClonedNode::new(brightness);
|
||||
let contrast = ClonedNode::new(contrast);
|
||||
|
|
@ -300,6 +298,8 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn brightness_contrast_tests() {
|
||||
let string_data = |string: &str| string.split(',').map(|s| s.parse().unwrap()).collect::<Vec<u8>>();
|
||||
|
||||
let brightness_contrast_map = |brightness, contrast| -> [u8; 1024] {
|
||||
let brightness = ClonedNode::new(brightness);
|
||||
let contrast = ClonedNode::new(contrast);
|
||||
|
|
|
|||
Loading…
Reference in New Issue