Skip to content

Commit da04ee5

Browse files
authored
merge: pull request #629 from saif-ellafi/dont-select-unselectable-layers
Do not select unselectable layers
2 parents 27812b3 + 4c46ede commit da04ee5

File tree

5 files changed

+19
-5
lines changed

5 files changed

+19
-5
lines changed

CHANGELOG.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
# Changelog
22

3+
## 11.2.3
4+
- **FIX**(multiselect): Resolve issue where layers could still be selected even when `enableSelection` for the layer was set to `false`. This resolves issue [#628](https://github.com/hm21/pro_image_editor/issues/628).
5+
36
## 11.2.2
4-
- **FIX**(main-editor): Resolved an issue where the `replaceLayer` function broke the logic that ensured layers resized correctly when the screen size changed. This resolves issue [#624](https://github.com/hm21/pro_image_editor/issues/624) and issue [#626](https://github.com/hm21/pro_image_editor/issues/626).
7+
- **FIX**(main-editor): Resolve issue where the `replaceLayer` function broke the logic that ensured layers resized correctly when the screen size changed. This resolves issue [#624](https://github.com/hm21/pro_image_editor/issues/624) and issue [#626](https://github.com/hm21/pro_image_editor/issues/626).
58

69
## 11.2.1
710
- **FIX**(state-history): Resolve issue where updating the background-image overwrote previous states.

lib/features/main_editor/main_editor.dart

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -819,7 +819,7 @@ class ProImageEditorState extends State<ProImageEditor>
819819
if (removeLayerIndex >= 0) {
820820
activeLayers.removeAt(removeLayerIndex);
821821
}
822-
if (!blockSelectLayer) {
822+
if (!blockSelectLayer && layer.interaction.enableSelection) {
823823
layerInteractionManager.addSelectedLayer(layer.id);
824824
}
825825
_checkInteractiveViewer();
@@ -2359,8 +2359,13 @@ class ProImageEditorState extends State<ProImageEditor>
23592359
/// active layer.
23602360
Layer? selectLayerById(String id, {bool enableMultiSelect = false}) {
23612361
int index = activeLayers.indexWhere((layer) => layer.id == id);
2362+
if (index == -1) return null;
2363+
23622364
Layer? layer = activeLayers[index];
23632365

2366+
// Check if the layer allows selection
2367+
if (!layer.interaction.enableSelection) return null;
2368+
23642369
if (!enableMultiSelect) layerInteractionManager.clearSelectedLayers();
23652370

23662371
layerInteractionManager.addSelectedLayer(id);
@@ -2371,7 +2376,9 @@ class ProImageEditorState extends State<ProImageEditor>
23712376
/// Selects all available layers.
23722377
void selectAllLayers() {
23732378
layerInteractionManager.setSelectedLayers(
2374-
activeLayers.map((layer) => layer.id),
2379+
activeLayers
2380+
.where((layer) => layer.interaction.enableSelection)
2381+
.map((layer) => layer.id),
23752382
);
23762383
_controllers.uiLayerCtrl.add(null);
23772384
}

lib/features/main_editor/services/layer_drag_selection_service.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ class LayerDragSelectionService {
151151

152152
if (size == null || size.isEmpty) continue;
153153

154+
// Skip layers that have enableSelection set to false
155+
if (!layer.interaction.enableSelection) continue;
156+
154157
Offset fractionalOffset = layer.isTextLayer
155158
? textOffset
156159
: layer.isPaintLayer

lib/features/main_editor/services/main_editor_layers_service.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,8 @@ class MainEditorLayersService {
230230
if (layer.groupId == null) return;
231231
// If layer is part of a group, handle group selection
232232
Set<String> groupIds = _activeLayers
233-
.where((l) => l.groupId == layer.groupId)
233+
.where(
234+
(l) => l.groupId == layer.groupId && l.interaction.enableSelection)
234235
.map((l) => l.id)
235236
.toSet();
236237

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: pro_image_editor
22
description: "A Flutter image editor: Seamlessly enhance your images with user-friendly editing features."
3-
version: 11.2.2
3+
version: 11.2.3
44
homepage: https://github.com/hm21/pro_image_editor/
55
repository: https://github.com/hm21/pro_image_editor/
66
documentation: https://github.com/hm21/pro_image_editor/

0 commit comments

Comments
 (0)