From d3f9b5731c73f3ab94804d0e381105e423d6ae8e Mon Sep 17 00:00:00 2001 From: luboslenco Date: Mon, 19 Jun 2023 15:12:53 +0200 Subject: [PATCH] Two-finger tap to undo, three-finger tap to redo for touch ui --- base/Sources/arm/ui/UIBase.hx | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/base/Sources/arm/ui/UIBase.hx b/base/Sources/arm/ui/UIBase.hx index 3afb0a99..68edac40 100644 --- a/base/Sources/arm/ui/UIBase.hx +++ b/base/Sources/arm/ui/UIBase.hx @@ -42,6 +42,8 @@ class UIBase { var borderHandle: Handle = null; var action_paint_remap = ""; var operatorSearchOffset = 0; + var undoTapTime = 0.0; + var redoTapTime = 0.0; #if (is_paint || is_sculpt) public var hwnds = [Id.handle(), Id.handle(), Id.handle()]; @@ -1086,6 +1088,14 @@ class UIBase { var redoPressed = Operator.shortcut(Config.keymap.edit_redo) || (kb.down("control") && kb.started("y")); + // Two-finger tap to undo, three-finger tap to redo + if (Config.raw.touch_ui) { + if (mouse.started("middle")) { redoTapTime = Time.time(); } + else if (mouse.started("right")) { undoTapTime = Time.time(); } + else if (mouse.released("middle") && Time.time() - redoTapTime < 0.2) { redoTapTime = undoTapTime = 0; redoPressed = true; } + else if (mouse.released("right") && Time.time() - undoTapTime < 0.2) { redoTapTime = undoTapTime = 0; undoPressed = true; } + } + if (undoPressed) History.undo(); else if (redoPressed) History.redo();