הבקשה
משתמש בפורום מדווח שגרירה לא-מכוונת של ידית הגלילה מקפיצה אותו למקום אחר בספר ומאבדת את מקום הקריאה. קורה בעיקר באנדרואיד (מסך מגע), אך ייתכן שגם בדסקטופ.
הבקשה: מנגנון שחזור מקום — או "ביטול פעולה אחרונה" (undo) לניווט בתוך ספר, או לפחות "חזרה למיקום אחרון" שיופעל כשהמקום השתנה בגלל קפיצה (ולא בגלל גלילה רגילה). באנדרואיד, שיוך למקש החזרה של המערכת יהיה נוח במיוחד.
ממצאים מהקוד (branch main, 01/09/2026)
- ידית הגלילה הנגררת בספרי PDF:
PdfViewerScrollThumb (אנכית בצד ימין וגם אופקית בתחתית) ב-lib/pdf_book/pdf_book_screen.dart (סביב שורות 352–381). זו כנראה נקודת הכשל שהמשתמש מתאר.
- בספרי טקסט אין
Scrollbar בכלל (התצוגה מבוססת ScrollablePositionedList) — כך שאם התסמין מופיע גם שם, מקורו אחר.
- אין כרגע שום stack ניווט פנימי בתוך ספר: חיפוש
PopScope / WillPopScope / onPopInvoked בכל lib/ לא מחזיר תוצאות — כלומר מקש החזרה של אנדרואיד אינו מטופל במסך הספר, ואין למה "לחזור".
- ההיסטוריה הקיימת (
lib/history/) לא יכולה לשמש כ-undo במצב הנוכחי: _onCaptureStateForHistory ב-lib/history/bloc/history_bloc.dart שומר snapshot ב-_pendingSnapshots[bookmark.historyKey] (מפתח לפי ספר) עם debounce של 1500ms — כלומר לכל ספר נשמר רק המיקום העדכני, והמיקום שלפני הקפיצה נדרס.
כיוון אפשרי
לשמור בכל טאב מיקום "לפני קפיצה" (index/offset) שנרשם רק על ניווט לא-רציף — גרירת thumb, בחירה בתוכן העניינים, מעבר מתוצאת חיפוש, קישור עומק — ולחשוף פעולת "חזרה למיקום קודם" (כפתור או קיצור מקשים, ובאנדרואיד גם דרך PopScope על מקש החזרה). גלילה רגילה לא תיצור נקודת חזרה.
https://otzaria.org/forum/post/36801
הבקשה
משתמש בפורום מדווח שגרירה לא-מכוונת של ידית הגלילה מקפיצה אותו למקום אחר בספר ומאבדת את מקום הקריאה. קורה בעיקר באנדרואיד (מסך מגע), אך ייתכן שגם בדסקטופ.
הבקשה: מנגנון שחזור מקום — או "ביטול פעולה אחרונה" (undo) לניווט בתוך ספר, או לפחות "חזרה למיקום אחרון" שיופעל כשהמקום השתנה בגלל קפיצה (ולא בגלל גלילה רגילה). באנדרואיד, שיוך למקש החזרה של המערכת יהיה נוח במיוחד.
ממצאים מהקוד (branch
main, 01/09/2026)PdfViewerScrollThumb(אנכית בצד ימין וגם אופקית בתחתית) ב-lib/pdf_book/pdf_book_screen.dart(סביב שורות 352–381). זו כנראה נקודת הכשל שהמשתמש מתאר.Scrollbarבכלל (התצוגה מבוססתScrollablePositionedList) — כך שאם התסמין מופיע גם שם, מקורו אחר.PopScope/WillPopScope/onPopInvokedבכלlib/לא מחזיר תוצאות — כלומר מקש החזרה של אנדרואיד אינו מטופל במסך הספר, ואין למה "לחזור".lib/history/) לא יכולה לשמש כ-undo במצב הנוכחי:_onCaptureStateForHistoryב-lib/history/bloc/history_bloc.dartשומר snapshot ב-_pendingSnapshots[bookmark.historyKey](מפתח לפי ספר) עם debounce של 1500ms — כלומר לכל ספר נשמר רק המיקום העדכני, והמיקום שלפני הקפיצה נדרס.כיוון אפשרי
לשמור בכל טאב מיקום "לפני קפיצה" (index/offset) שנרשם רק על ניווט לא-רציף — גרירת thumb, בחירה בתוכן העניינים, מעבר מתוצאת חיפוש, קישור עומק — ולחשוף פעולת "חזרה למיקום קודם" (כפתור או קיצור מקשים, ובאנדרואיד גם דרך
PopScopeעל מקש החזרה). גלילה רגילה לא תיצור נקודת חזרה.https://otzaria.org/forum/post/36801