diff --git a/source/blender/blenkernel/intern/grease_pencil.cc b/source/blender/blenkernel/intern/grease_pencil.cc index 93462c8f88f..39f169a9c3a 100644 --- a/source/blender/blenkernel/intern/grease_pencil.cc +++ b/source/blender/blenkernel/intern/grease_pencil.cc @@ -3903,7 +3903,7 @@ static void reorder_layer_data(GreasePencil &grease_pencil, const bke::greasepencil::Layer *layer = layers[layer_i_new]; BLI_assert(old_layer_index_by_layer.contains(layer)); const int layer_i_old = old_layer_index_by_layer.pop(layer); - new_by_old_map[layer_i_old] = layer_i_new; + new_by_old_map[layer_i_new] = layer_i_old; } BLI_assert(old_layer_index_by_layer.is_empty()); diff --git a/tests/python/bl_pyapi_grease_pencil.py b/tests/python/bl_pyapi_grease_pencil.py index 0990e876bd0..75314b04b0f 100644 --- a/tests/python/bl_pyapi_grease_pencil.py +++ b/tests/python/bl_pyapi_grease_pencil.py @@ -24,12 +24,17 @@ class TestGreasePencil(unittest.TestCase): class TestGreasePencilLayers(unittest.TestCase): + tint_factors = [0.3, 0.6, 0.9] + def setUp(self): self.gp = bpy.data.grease_pencils_v3.new("test_grease_pencil") self.gp.layers.new("test_layer01") self.gp.layers.new("test_layer02") self.gp.layers.new("test_layer03") + for i, layer in enumerate(self.gp.layers): + layer.tint_factor = self.tint_factors[i] + def tearDown(self): bpy.data.grease_pencils_v3.remove(self.gp) del self.gp @@ -69,6 +74,14 @@ class TestGreasePencilLayers(unittest.TestCase): self.assertEqual(self.gp.layers[1].name, "test_layer01") self.assertEqual(self.gp.layers[2].name, "test_layer03") + def test_grease_pencil_layers_attribute_reorder(self): + layer = self.gp.layers[0] + self.gp.layers.move_top(layer) + # Check layer attribute + self.assertEqual(round(self.gp.layers[0].tint_factor, 1), self.tint_factors[1]) + self.assertEqual(round(self.gp.layers[1].tint_factor, 1), self.tint_factors[2]) + self.assertEqual(round(self.gp.layers[2].tint_factor, 1), self.tint_factors[0]) + class TestGreasePencilFrame(unittest.TestCase): def setUp(self):