Fix ToolApp edge back drag progress

This commit is contained in:
Hermes
2026-05-22 06:14:44 +08:00
parent dcd3fcb9ee
commit 67fad1d7f8
4 changed files with 44 additions and 8 deletions

View File

@@ -370,7 +370,31 @@ FloatBallAppWM.prototype.applyPanelPredictiveBackProgress = function(panel, even
try { edge = Number(event.getSwipeEdge()); } catch (eE) { edge = 0; } try { edge = Number(event.getSwipeEdge()); } catch (eE) { edge = 0; }
if (panel && this.state && this.state.toolAppRoot === panel && this.applyToolAppBackPreviewProgress && this.hasToolAppBackTarget && this.hasToolAppBackTarget()) { if (panel && this.state && this.state.toolAppRoot === panel && this.applyToolAppBackPreviewProgress && this.hasToolAppBackTarget && this.hasToolAppBackTarget()) {
this.state.toolAppBackEdge = edge; this.state.toolAppBackEdge = edge;
this.applyToolAppBackPreviewProgress(edge, p);
var dragPx = 0;
try {
var panelW = 0;
try { panelW = Number(panel.getWidth ? panel.getWidth() : 0); } catch(ePW) { panelW = 0; }
if (!panelW || panelW < this.dp(120)) {
try { panelW = Number((this.state.viewerPanelLp && this.state.viewerPanelLp.width) || 0); } catch(eLpW) { panelW = 0; }
}
if (!panelW || panelW < this.dp(120)) panelW = this.dp(320);
var maxFollow = Math.min(this.dp(220), Math.floor(panelW * 0.45));
dragPx = Math.round(maxFollow * p);
} catch(eDrag) {
dragPx = Math.round(this.dp(180) * p);
}
try {
var nowPb = Date.now();
if (!this.state.toolAppPredictiveBackLogAt || (nowPb - Number(this.state.toolAppPredictiveBackLogAt || 0)) > 300) {
this.state.toolAppPredictiveBackLogAt = nowPb;
safeLog(this.L, 'd', 'predictive back progress edge=' + String(edge) + ' p=' + String(p) + ' dragPx=' + String(dragPx));
}
} catch(eLogPb) {}
this.applyToolAppBackPreviewProgress(edge, p, dragPx);
return; return;
} }
var dir = edge === 1 ? -1 : 1; var dir = edge === 1 ? -1 : 1;

View File

@@ -846,7 +846,16 @@ FloatBallAppWM.prototype.applyToolAppBackPreviewProgress = function(edge, progre
} }
} catch(eFollow) {} } catch(eFollow) {}
if (body) { if (body) {
body.setTranslationX(dir * w * eased * 0.42); var bodyMove = dir * w * eased * 0.42;
try {
if (dragPx !== undefined && dragPx !== null) {
var rawDrag = Number(dragPx || 0);
if (isNaN(rawDrag)) rawDrag = 0;
if (rawDrag < 0) rawDrag = -rawDrag;
bodyMove = dir * Math.min(rawDrag, Math.floor(w * 0.45));
}
} catch(eBodyMove) {}
body.setTranslationX(bodyMove);
body.setAlpha(1.0 - 0.10 * eased); body.setAlpha(1.0 - 0.10 * eased);
var s = 1.0 - 0.015 * eased; var s = 1.0 - 0.015 * eased;
body.setScaleX(s); body.setScaleX(s);
@@ -934,6 +943,9 @@ FloatBallAppWM.prototype.createToolAppEdgeBackStrip = function(edge) {
var my = event.getRawY() - downY; var my = event.getRawY() - downY;
var validDir = (edge === 0 && mx > 0) || (edge === 1 && mx < 0); var validDir = (edge === 0 && mx > 0) || (edge === 1 && mx < 0);
if (validDir && Math.abs(mx) > self.dp(4) && Math.abs(mx) > Math.abs(my)) { if (validDir && Math.abs(mx) > self.dp(4) && Math.abs(mx) > Math.abs(my)) {
if (!moved) {
try { safeLog(self.L, 'd', 'edge strip move edge=' + String(edge) + ' mx=' + String(mx)); } catch(eMoveLog) {}
}
moved = true; moved = true;
var triggerDp = Number(self.config.TOOLAPP_BACK_PROGRESS_DISTANCE_DP || 180); var triggerDp = Number(self.config.TOOLAPP_BACK_PROGRESS_DISTANCE_DP || 180);
if (isNaN(triggerDp)) triggerDp = 180; if (isNaN(triggerDp)) triggerDp = 180;

View File

@@ -34,8 +34,8 @@
"size": 7938 "size": 7938
}, },
"th_09_animation.js": { "th_09_animation.js": {
"sha256": "f7358773d9d4761038ac0ab65fa1f370d4577b4f5c8999d022a50ddd60f28418", "sha256": "2570ffbbc33fa2318e27c5e99c4e78e1bf96c7da8ec134053acda009207488cb",
"size": 40993 "size": 42007
}, },
"th_10_shell.js": { "th_10_shell.js": {
"sha256": "0ed793079c2f6ba7d29f4c0d411705cb72419f45f572cbe37ed32ac16527a8bc", "sha256": "0ed793079c2f6ba7d29f4c0d411705cb72419f45f572cbe37ed32ac16527a8bc",
@@ -58,8 +58,8 @@
"size": 304993 "size": 304993
}, },
"th_15_extra.js": { "th_15_extra.js": {
"sha256": "2cfa025fb31802d45efec86b93515abafdc15b0213b29e449f4c1508a11aeff6", "sha256": "019fe7752d33d65771ec9421c8760d8b907cf95cc6493a4c7379c35fc6336350",
"size": 108559 "size": 109063
}, },
"th_16_entry.js": { "th_16_entry.js": {
"sha256": "6c59d9891cd010647f84c3db93f1cf95c7bbfb758470ea21044bf72eb8ff73d1", "sha256": "6c59d9891cd010647f84c3db93f1cf95c7bbfb758470ea21044bf72eb8ff73d1",
@@ -68,5 +68,5 @@
}, },
"keyId": "toolhub-targets-2026-rsa3072", "keyId": "toolhub-targets-2026-rsa3072",
"schema": 2, "schema": 2,
"version": 20260521215947 "version": 20260521221432
} }

View File

@@ -1 +1 @@
Q7x3zGDrx6H/5q0xEOY6JPD22CPaCXutvySNnKfIevW3cu+Db7vS5zDKhWm9tmuDkx2PMA4T0I673Tz5TPViqhn003j+5++tpaJQI3cCOFgLjH9QEPswBCglul9ge3vOGEiTJsjIYzqfzLDRWk4S7cdiw4Myzl9apKRzAdvQP7EPM88Dx9fu0xlLo6yZ8UQQ2UaDruxy4O2F7yIxuihNEYPy0QlaFivD/lu9TZxlUoY74w/MYsUrP7TGPHFp9Y84MO8IF/ZUaopqtPRVNCGSGWpzFNsZLE3hIPghg6Bm6YYApML8PDLFu3kEHxH0aUUZMXgbZQBCfFsCbmSQw3fL31seZpWX4QEtWQ8u3T+RlKOpT8HnC3VjoRXoqvvlOFG9yAiXi+b75JUF3geVOX4HHWOeMEOtO58s+f977pA/kRDksO3rzNdGa0ywZ6m3nFEMWrfhwqVyyp0vKlnVtJb+62wWqXsUxhOHWH9+r1dmeibObVtcrKBJlU2wJCez8Pbt lKipQfJ13k9tmnFDCTT71bXXhhnx7hSVwNmVnBr0to6W8WjZUAhCT1p6/FvLI11ZgAqHTCHjTU6K1IhuP97itN3qduPXc9JocWcEVS5vkKKSsNVcf0pNMxoF37jz/J9ymHFVfSZpblTi0txulxBAu6iFG6fJsWbbjXcstHNZDckg4YTIIE0zHrhybe3KTlAcSRmhaoJjP0lDprJlipkbAUT6t68YTd0UBzbAdnzBffcwp/KvsAtZP8xfYMZBbaOUAKjvyyKUs8h5KDPo7bk26/CXZIPmLDonWxGDRQUHqK/7FS6gy7wAIW9gugP/NnTwWpvv0IXNgdPkVApyXkH/YAc8LCLKeJoKfvquNaeE+nzK+l27AuWld8TGZguUB8FhLEoxBlblKKMUfpwwAyAz29HR7mHgavaHO52UhBa0NcAY1lvRmtuosJx95Q5MiAC66iuYEFyWunbZlYcB8P3vdiOCNuc1RFTpzE9NgJONeEUQ6jL9dmUf2nLOPMB4SIR1