diff --git a/code/th_09_animation.js b/code/th_09_animation.js index 9d7c300..aee6038 100644 --- a/code/th_09_animation.js +++ b/code/th_09_animation.js @@ -341,6 +341,11 @@ FloatBallAppWM.prototype.showPanelPredictiveBackIndicator = function(edge) { FloatBallAppWM.prototype.resetPanelPredictiveBackVisual = function(panel) { try { + if (panel && this.state && this.state.toolAppRoot === panel && this.clearToolAppBackPreview) { + this.clearToolAppBackPreview(true); + this.hidePanelPredictiveBackIndicator(); + return; + } if (panel) { panel.setAlpha(1.0); panel.setTranslationX(0); @@ -361,6 +366,11 @@ FloatBallAppWM.prototype.applyPanelPredictiveBackProgress = function(panel, even if (p > 1) p = 1; var edge = 0; try { edge = Number(event.getSwipeEdge()); } catch (eE) { edge = 0; } + if (panel && this.state && this.state.toolAppRoot === panel && this.applyToolAppBackPreviewProgress && this.getToolAppPreviousStackEntry && this.getToolAppPreviousStackEntry()) { + this.state.toolAppBackEdge = edge; + this.applyToolAppBackPreviewProgress(edge, p); + return; + } var dir = edge === 1 ? -1 : 1; panel.setAlpha(1.0 - 0.18 * p); panel.setTranslationX(dir * this.dp(36) * p); @@ -419,6 +429,12 @@ FloatBallAppWM.prototype.registerPanelPredictiveBack = function(panel, which) { onBackProgressed: function(event) { self.applyPanelPredictiveBackProgress(panel, event); }, onBackCancelled: function() { self.resetPanelPredictiveBackVisual(panel); }, onBackInvoked: function() { + if (String(which || "") === "tool_app" && self.finishToolAppBackPreview && self.getToolAppPreviousStackEntry && self.getToolAppPreviousStackEntry()) { + var edge = 0; + try { edge = Number(self.state.toolAppBackEdge || 0); } catch (eEdge) { edge = 0; } + self.finishToolAppBackPreview(edge, true); + return; + } self.resetPanelPredictiveBackVisual(panel); self.handlePanelBack(which, "predictive_back"); } diff --git a/manifest.json b/manifest.json index 5eb72bf..8f28951 100644 --- a/manifest.json +++ b/manifest.json @@ -34,8 +34,8 @@ "size": 7938 }, "th_09_animation.js": { - "sha256": "1c323579c090e635f9ab52fb26c21151738e9a845e6c1a6ef86fdcc6adc16da6", - "size": 35383 + "sha256": "f5f0f87c7bfefd1a434d6cc14c87464c32d5419dc5381e6a771974abcc65a003", + "size": 36270 }, "th_10_shell.js": { "sha256": "0ed793079c2f6ba7d29f4c0d411705cb72419f45f572cbe37ed32ac16527a8bc", @@ -68,5 +68,5 @@ }, "keyId": "toolhub-targets-2026-rsa3072", "schema": 2, - "version": 20260513190003 + "version": 20260513190421 } diff --git a/manifest.sig b/manifest.sig index 62ec13a..8363739 100644 --- a/manifest.sig +++ b/manifest.sig @@ -1 +1 @@ -TxKSEMoO+ieBxrJQNOj3L0B9LYm42eVfpbDI2kDu9ztx3VcxmIrTfg2NlvpL9JHVy3zSshl61nB21XqPchEwS8G3/hZzF8bEyiL0/H0QuvbpBxE6Q8ZhrS6iyuuGGpTfxOdrTYZ1NLw3y1eqlWt3zsPr4/vcEEMrr49yQJaWAYdkNUpL3687uFB6ZABZdOuPiUcf2vQC7V9T3+ltwFxaCH1bxig3AGmPDTbREqgTckn8hClliBsqtoUjhnADwpBu1fFoAhIdb+p+sqYgA3kL7plSQHPjfKDz6fQwwv2EXdzCMbIMipPpS0fSHoDY66Z29Lxyr2hwBsCsze0Sd5TFEt8Ri1q8srVHgSOcxnRfa752Alw10KbQ24YKmiUbR1oLVvjGN7k4b8dsdFCZEVSyXedYJY1a5TJFwH3CtCbKK0v/RPTMhlhNOczgVakXba1JukLAiq7BF7aGlEvIf9rMQqsvpywvlAuu1sQQVT+0JK6puOkvfRnXxh1KK/EN8pqj +i6ZGfxdczdGE61nAq6GJ0JfrHv/qrzzsQ5vDnHTI2uSAQo9KIClf5UMJmB0UlNZ1UG73OxdxSjFnNgXcGyc2QKKtSBkRNb5bC/49KCFWczaoGidXaGXd28IKjtQu4R+0cw7kS+4GfzN+ucTgBZYu79M4vfs9qsx+dhltSTgeAFzXP4skt7C5sWF6YpDMxuJDNsKQr1EqdssdnVxKQapT03Fpkflp5BBD4O2izkOdXgYKrhPMtRlSjacZn91sw6H2h/XTB4a/ogybxMWrZDv39plIMAdLe4ua/hnifKsjzAR9WnIGAyLOMkQ7lWnt4bspHALBrG2ehahoCqS4DYUZyXAWoePUA/4ZVxQUfi1uxRaQApc/Sbd+RPW7L4gbHIb2xB9aHzNDjQWDrSpIY6b65Y2YgichG1MG21k3yC3N/caggRwtDn6aP/qnZY7ZFJtBbocP4SUdaiaXdOiAdW1nlIrmLWnp47Mg3roEPM97aRMVEnRK55Tit/LCf+gg0+Pf