diff --git a/src/instruments/blobMask.ts b/src/instruments/blobMask.ts
index f89847a77474d4afb96d96bb064b1b031a29cc59..6bd4d96d643be87b7291eeae42f28ef48b76ab08 100644
--- a/src/instruments/blobMask.ts
+++ b/src/instruments/blobMask.ts
@@ -51,7 +51,7 @@ export class BlobMask extends AbstractInstrument<PathCoords> implements Instrume
         }
         this.wasClosed = isClosed;
 
-        if(DEBUG_MODE) {
+        if(DEBUG_MODE) { // Traces les contours convexes et fitted ellipse
             if(this.drawGroup.bounds.area > 10) {
                 let fittedEllipse = new ToEllipseFitter().transform(this.coords).toRemovedPath();
                 fittedEllipse.strokeColor = new paper.Color("red");
@@ -89,6 +89,7 @@ export class BlobMask extends AbstractInstrument<PathCoords> implements Instrume
      */
     public onActivation() {
         if(!this.lab.raster.data.blobMaskAttached) {
+            this.lab.raster.on("mousedown", this.onMouseDown.bind(this));
             this.lab.raster.on("mousedrag", this.onMouseDrag.bind(this));
             this.lab.raster.data.blobMaskAttached = true;
         }
@@ -97,18 +98,35 @@ export class BlobMask extends AbstractInstrument<PathCoords> implements Instrume
     /**
      * Lorsque quelque chose est déplacé de la règle
      */
-    private onMouseDrag(event : paper.MouseEvent) : boolean {
+    private addMousePoint(point : paper.Point) {
+        if(!this.coords.isClosed()) { // Une fois la boucle fermée, on ne peut plus ajouter de
+            this.coords.points.push(point)
+            this.refresh();
+        }
+        return true;
+    }
+
+    private onMouseDown(event : paper.MouseEvent) : boolean {
         if(!this.active) {
             return true;
         }
-        if(!this.coords.isClosed()) { // Une fois la boucle fermée, on ne peut plus ajouter de
-            this.coords.points.push(event.point)
+        this.addMousePoint(event.point);
+        return true;
+    }
+
+    /**
+     * Déplacement de la souris
+     */
+    private onMouseDrag(event : paper.MouseEvent) : boolean {
+        if(!this.active) {
+            return true;
         }
-        this.refresh();
+        this.addMousePoint(event.point);
         return true;
     }
 
-    protected fillColor(active: boolean, coords : PathCoords): paper.Color | null {
+
+    protected override fillColor(active: boolean, coords : PathCoords): paper.Color | null {
         if(coords.isClosed()) {
             let fillColor = active ? new paper.Color("yellow") : new paper.Color("olive");
             fillColor.alpha = 0.5;