Explorar o código

#277 delete current layer

circular17 %!s(int64=3) %!d(string=hai) anos
pai
achega
2d6e97f7d1
Modificáronse 1 ficheiros con 12 adicións e 0 borrados
  1. 12 0
      lazpaint/uimageview.pas

+ 12 - 0
lazpaint/uimageview.pas

@@ -674,7 +674,19 @@ begin
 end;
 
 function TImageView.CatchToolKeyDown(var AKey: Word): boolean;
+var
+  prevTool: TPaintToolType;
 begin
+  if (AKey = VK_DELETE) and
+     (LazPaintInstance.ToolManager.GetCurrentToolType in[ptMoveLayer, ptRotateLayer, ptZoomLayer]) and
+     (Image.NbLayers > 1) then
+  begin
+    prevTool := LazPaintInstance.ToolManager.GetCurrentToolType;
+    LazPaintInstance.ChooseTool(ptHand, false);
+    Image.RemoveLayer;
+    LazPaintInstance.ChooseTool(prevTool, false);
+    exit;
+  end;
   FCatchPaintPicture:= true;
   FPaintPictureCatched := false;
   try