Skip to content

בקשת תכונה: חזרה למיקום קודם / ביטול קפיצת גלילה לא-מכוונת בספר (בעיקר אנדרואיד) #1085

Description

@Otzaria-Bot

הבקשה

משתמש בפורום מדווח שגרירה לא-מכוונת של ידית הגלילה מקפיצה אותו למקום אחר בספר ומאבדת את מקום הקריאה. קורה בעיקר באנדרואיד (מסך מגע), אך ייתכן שגם בדסקטופ.

הבקשה: מנגנון שחזור מקום — או "ביטול פעולה אחרונה" (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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions