Preserve reader current page on "reader width" change

This commit is contained in:
schroda
2025-11-12 03:56:40 +01:00
parent 7b89fa10c5
commit bab55bafdb
3 changed files with 5 additions and 1 deletions

View File

@@ -34,7 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
- (**Reader**) Fix mouse drag scrolling inertia effect being locked at 60hz - (**Reader**) Fix mouse drag scrolling inertia effect being locked at 60hz
- (**Reader**) Fix mouse cursor drift during drag scroll - (**Reader**) Fix mouse cursor drift during drag scroll
- (**Reader**) Fix deletion of chapters while reading - (**Reader**) Fix deletion of chapters while reading
- (**Reader**) Fix potential page loss during window resize while using continuous horizontal reading mode - (**Reader**) Fix potential page loss (continuous horizontal mode window resize, reader width change, page scale change)
- (**Extension**) Fix handling obsolete extensions as updatable in case they are marked as having an available update - (**Extension**) Fix handling obsolete extensions as updatable in case they are marked as having an available update
- (**Theme**) Fix loading of fonts defined in themes - (**Theme**) Fix loading of fonts defined in themes
- (**Reader**) Fix broken scrolling in continuous horizontal reading mode - (**Reader**) Fix broken scrolling in continuous horizontal reading mode

View File

@@ -273,6 +273,7 @@ const BaseReaderViewer = ({
setPageToScrollToIndex, setPageToScrollToIndex,
pageScaleMode, pageScaleMode,
shouldStretchPage, shouldStretchPage,
readerWidth,
); );
useLayoutEffect(() => { useLayoutEffect(() => {

View File

@@ -9,6 +9,7 @@
import { RefObject, useCallback, useEffect, useLayoutEffect, useRef } from 'react'; import { RefObject, useCallback, useEffect, useLayoutEffect, useRef } from 'react';
import { useWindowEvent } from '@mantine/hooks'; import { useWindowEvent } from '@mantine/hooks';
import { import {
IReaderSettingsManga,
ReaderPageScaleMode, ReaderPageScaleMode,
ReaderStateChapters, ReaderStateChapters,
ReaderStatePages, ReaderStatePages,
@@ -359,6 +360,7 @@ export const useReaderPreserveScrollPosition = (
setPageToScrollToIndex: ReaderStatePages['setPageToScrollToIndex'], setPageToScrollToIndex: ReaderStatePages['setPageToScrollToIndex'],
pageScaleMode: ReaderPageScaleMode, pageScaleMode: ReaderPageScaleMode,
shouldStretchPage: boolean, shouldStretchPage: boolean,
readerWidth: IReaderSettingsManga['readerWidth'],
) => { ) => {
usePreserveOnInfiniteScrollPreviousChapterInitialRender( usePreserveOnInfiniteScrollPreviousChapterInitialRender(
scrollElementRef, scrollElementRef,
@@ -375,4 +377,5 @@ export const useReaderPreserveScrollPosition = (
usePreserveOnValueChange(readingMode, currentPageIndex, setPageToScrollToIndex); usePreserveOnValueChange(readingMode, currentPageIndex, setPageToScrollToIndex);
usePreserveOnValueChange(pageScaleMode, currentPageIndex, setPageToScrollToIndex); usePreserveOnValueChange(pageScaleMode, currentPageIndex, setPageToScrollToIndex);
usePreserveOnValueChange(shouldStretchPage, currentPageIndex, setPageToScrollToIndex); usePreserveOnValueChange(shouldStretchPage, currentPageIndex, setPageToScrollToIndex);
usePreserveOnValueChange(readerWidth, currentPageIndex, setPageToScrollToIndex);
}; };