diff --git a/code/th_15_extra.js b/code/th_15_extra.js index 4fe5d5a..fe80de4 100644 --- a/code/th_15_extra.js +++ b/code/th_15_extra.js @@ -620,6 +620,14 @@ FloatBallAppWM.prototype.buildToolAppPreviewBody = function(entry) { var hasOldGroupKey = false; var r = "settings"; try { + var spec = null; + try { + spec = this.getToolAppResponsiveSpec ? this.getToolAppResponsiveSpec() : null; + } catch(eSpec) { + spec = null; + } + var topBarHeight = spec ? spec.topBarHeight : this.dp(56); + oldGroupKey = this.state.settingsGroupKey; hasOldGroupKey = true; var groupKey = null; @@ -829,10 +837,15 @@ FloatBallAppWM.prototype.applyToolAppBackPreviewProgress = function(edge, progre if (isNaN(p)) p = 0; if (p < 0) p = 0; if (p > 1) p = 1; - if (!this.prepareToolAppBackPreview(edge)) return false; + var previewReady = false; + try { + previewReady = this.prepareToolAppBackPreview(edge); + } catch(ePrepare) { + previewReady = false; + } var eased = 1 - Math.pow(1 - p, 2.2); var body = this.state.toolAppBody; - var prev = this.state.toolAppBackPreviewView; + var prev = previewReady ? this.state.toolAppBackPreviewView : null; var dir = Number(edge) === 1 ? -1 : 1; var w = 0; try { w = Number((this.state.viewerPanelLp && this.state.viewerPanelLp.width) || 0); } catch (eW0) {} @@ -845,6 +858,20 @@ FloatBallAppWM.prototype.applyToolAppBackPreviewProgress = function(edge, progre this.applyToolAppBackWindowFollow(edge, dragPx); } } catch(eFollow) {} + + try { + var nowLog = Date.now(); + if (!this.state._lastBackPreviewLog || nowLog - this.state._lastBackPreviewLog > 300) { + safeLog(this.L, 'd', + 'back preview progress edge=' + String(edge) + + ' p=' + String(p) + + ' dragPx=' + String(dragPx) + + ' previewReady=' + String(previewReady) + ); + this.state._lastBackPreviewLog = nowLog; + } + } catch(eLog) {} + if (body) { var bodyMove = dir * w * eased * 0.42; try { @@ -855,6 +882,7 @@ FloatBallAppWM.prototype.applyToolAppBackPreviewProgress = function(edge, progre bodyMove = dir * Math.min(rawDrag, Math.floor(w * 0.45)); } } catch(eBodyMove) {} + try { body.animate().cancel(); } catch(eCancelBody) {} body.setTranslationX(bodyMove); body.setAlpha(1.0 - 0.10 * eased); var s = 1.0 - 0.015 * eased; diff --git a/manifest.json b/manifest.json index cab6f35..a752e55 100644 --- a/manifest.json +++ b/manifest.json @@ -58,8 +58,8 @@ "size": 304993 }, "th_15_extra.js": { - "sha256": "019fe7752d33d65771ec9421c8760d8b907cf95cc6493a4c7379c35fc6336350", - "size": 109063 + "sha256": "b955573f6715af3da1ffe2302fdc5ebd54967a067f0e8a7503d1eebfbf4e1106", + "size": 109900 }, "th_16_entry.js": { "sha256": "6c59d9891cd010647f84c3db93f1cf95c7bbfb758470ea21044bf72eb8ff73d1", @@ -68,5 +68,5 @@ }, "keyId": "toolhub-targets-2026-rsa3072", "schema": 2, - "version": 20260521221432 + "version": 20260521222249 } diff --git a/manifest.sig b/manifest.sig index 9484c56..69011e3 100644 --- a/manifest.sig +++ b/manifest.sig @@ -1 +1 @@ -lKipQfJ13k9tmnFDCTT71bXXhhnx7hSVwNmVnBr0to6W8WjZUAhCT1p6/FvLI11ZgAqHTCHjTU6K1IhuP97itN3qduPXc9JocWcEVS5vkKKSsNVcf0pNMxoF37jz/J9ymHFVfSZpblTi0txulxBAu6iFG6fJsWbbjXcstHNZDckg4YTIIE0zHrhybe3KTlAcSRmhaoJjP0lDprJlipkbAUT6t68YTd0UBzbAdnzBffcwp/KvsAtZP8xfYMZBbaOUAKjvyyKUs8h5KDPo7bk26/CXZIPmLDonWxGDRQUHqK/7FS6gy7wAIW9gugP/NnTwWpvv0IXNgdPkVApyXkH/YAc8LCLKeJoKfvquNaeE+nzK+l27AuWld8TGZguUB8FhLEoxBlblKKMUfpwwAyAz29HR7mHgavaHO52UhBa0NcAY1lvRmtuosJx95Q5MiAC66iuYEFyWunbZlYcB8P3vdiOCNuc1RFTpzE9NgJONeEUQ6jL9dmUf2nLOPMB4SIR1 +PCoh/AnzuyTevPckTCsSIQKxoIla7IzTNtruxi0f4gJghuP/mlrKCH4RzTVf1teHSoYQanG5fWGWIGSh396MerQdCXG/g5VMlZirrOZ6ew3gooxZ3lLg6Y3hBH3oI47KhJF5PX+z/sqeH5AOMZ7d2OrWlYNgGmRvqoyulHK2dSHhHN3OjVxVYI4x72COMhf//6IFxWxL6sp31eS+HEL43+CRGJLxYzuNBlwq6EMO0IX22NBtU2Fs3fheyIiGZVFHnHNyHs4IKXWC5EVLYrD697DnxhkGvRcNOBM0QkcDtLQBahZFpt7qeHxl5pCYyTKubUYXk9noNxR92P9ocvGAD6KARtCoHiWmkp79d0siAKJ+DjzSgIF0Ye5qAGfyMjUb7ZVPPlcYtYZj97/GEYYjxmFeuyVLnxgI7XLOJy5fgQAhiMkwGhoMG4WGK41ym3kQXvQTumnG/i8+9OPfRd58EzbqVHUS4oJgbGLdmTrfV8l2k1NCcGlZP04yNYCailnu