浏览代码

#277 delete current layer

circular17 3 年之前
父节点
当前提交
2d6e97f7d1
共有 1 个文件被更改,包括 12 次插入0 次删除
  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