diff --git a/Paintroid/src/main/java/org/catrobat/paintroid/presenter/MainActivityPresenter.kt b/Paintroid/src/main/java/org/catrobat/paintroid/presenter/MainActivityPresenter.kt index 49f68e9d24..15697a96b7 100644 --- a/Paintroid/src/main/java/org/catrobat/paintroid/presenter/MainActivityPresenter.kt +++ b/Paintroid/src/main/java/org/catrobat/paintroid/presenter/MainActivityPresenter.kt @@ -600,6 +600,8 @@ open class MainActivityPresenter( idlingResource.increment() if (view.isKeyboardShown) { view.hideKeyboard() + } else if (toolController.currentTool is DynamicLineTool) { + commandManager.undo() } else { if (commandManager.isLastColorCommandOnTop() || commandManager.getColorCommandCount() == 0) { toolController.currentTool?.changePaintColor(Color.BLACK) diff --git a/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/DynamicLineTool.kt b/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/DynamicLineTool.kt index 877dac3c12..b88eecda42 100644 --- a/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/DynamicLineTool.kt +++ b/Paintroid/src/main/java/org/catrobat/paintroid/tools/implementation/DynamicLineTool.kt @@ -5,6 +5,7 @@ import android.graphics.Color import android.graphics.Paint import android.graphics.PointF import android.view.View +import androidx.annotation.ColorInt import androidx.test.espresso.idling.CountingIdlingResource import org.catrobat.paintroid.command.CommandManager import org.catrobat.paintroid.command.implementation.DynamicPathCommand @@ -142,7 +143,7 @@ class DynamicLineTool( } fun setToolPaint(command: DynamicPathCommand) { - super.changePaintColor(command.paint.color) + super.changePaintColor(command.paint.color, false) super.changePaintStrokeCap(command.paint.strokeCap) super.changePaintStrokeWidth(command.paint.strokeWidth.toInt()) } @@ -324,8 +325,8 @@ class DynamicLineTool( } } - override fun changePaintColor(color: Int) { - super.changePaintColor(color) + override fun changePaintColor(@ColorInt color: Int, invalidate: Boolean) { + super.changePaintColor(color, false) if (vertexStack.isEmpty()) return vertexStack.last.ingoingPathCommand?.setPaintColor(toolPaint.color) commandManager.executeAllCommands() @@ -417,7 +418,7 @@ class DynamicLineTool( paint.run { style = Paint.Style.FILL color = originalPaint.color - alpha = 128 + alpha = GHOST_PAINT_ALPHA strokeWidth = originalPaint.strokeWidth strokeCap = originalPaint.strokeCap }