(x, y, scale = false)
| 2590 | } |
| 2591 | |
| 2592 | function notCrossZoomLimits(x, y, scale = false) |
| 2593 | { |
| 2594 | scale = scale !== false ? scale : scalePrevData.scale; |
| 2595 | |
| 2596 | let indexSize = getIndexImagesSize((config.readingGlobalZoom && readingViewIs('scroll')) ? (currentIndex - 1) : currentZoomIndex); |
| 2597 | |
| 2598 | let maxX = indexSize.width * 0.5 * scale - originalRect.width * 0.5; |
| 2599 | let minX = indexSize.width * -0.5 * scale - originalRect.width * -0.5; |
| 2600 | |
| 2601 | if(maxX < 0) maxX = 0; |
| 2602 | if(minX > 0) minX = 0; |
| 2603 | |
| 2604 | let maxDiff = readingViewIs('scroll') ? ((originalRect.top + originalRect.height) - (originalRectReadingBody.top + originalRectReadingBody.height)) : 0; |
| 2605 | let minDiff = readingViewIs('scroll') ? (originalRect.top - originalRectReadingBody.top) : 0; |
| 2606 | |
| 2607 | let maxY = (indexSize.height * 0.5 * scale - originalRect.height * 0.5) - (minDiff < 0 ? minDiff : 0); |
| 2608 | let minY = (indexSize.height * -0.5 * scale - originalRect.height * -0.5) - (maxDiff > 0 ? maxDiff + readingMargin().top : 0); |
| 2609 | |
| 2610 | if(maxY < 0) maxY = 0; |
| 2611 | if(minY > 0) minY = 0; |
| 2612 | |
| 2613 | if(x > maxX) |
| 2614 | x = maxX; |
| 2615 | else if(x < minX) |
| 2616 | x = minX; |
| 2617 | |
| 2618 | if(y > maxY) |
| 2619 | y = maxY; |
| 2620 | else if(y < minY) |
| 2621 | y = minY; |
| 2622 | |
| 2623 | return {x: x, y: y, maxX: maxX, maxY: maxY, height: indexSize.height, width: indexSize.width}; |
| 2624 | } |
| 2625 | |
| 2626 | // Drag zoom |
| 2627 | function dragZoom(x, y, animation = false) |
no test coverage detected