Skip to content

Preserve the original PDF selection during asynchronous text extraction - #1

Merged
palmoni5 merged 1 commit into
palmoni5:perf/viewer-render-orderfrom
Y-PLONI:codex/fix-selected-text-snapshot
Oct 5, 2026
Merged

palmoni5 merged 1 commit into
palmoni5:perf/viewer-render-orderfrom
Y-PLONI:codex/fix-selected-text-snapshot

Conversation

@Y-PLONI

@Y-PLONI Y-PLONI commented Oct 5, 2026

Copy link
Copy Markdown

הבעיה והתיקון

ב־ff9785dd, הוספת selectedTextIfLoaded שינתה גם את getSelectedTextRanges(): אחרי טעינת עמודי הביניים נקראה מחדש הבחירה הנוכחית. ניקוי או החלפת הבחירה בזמן הטעינה גרמו לפעולת חילוץ/העתקה שכבר התחילה להחזיר טקסט ריק או טקסט מהבחירה החדשה.

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

נוספו בדיקות עם PDF בן 30 עמודים: ניקוי והחלפת הבחירה במהלך חילוץ, ו־selectedTextIfLoaded שמחזיר null לפני טעינת עמודי ביניים ואז את מלוא הטקסט. שתי בדיקות הרגרסיה נכשלו לפני התיקון ועוברות אחריו. תוקנה גם הפניית dartdoc לפרמטר שכבר אינו קיים, כדי שהניתוח הסטטי של החבילה יעבור נקי.

אימות

  • flutter analyze --no-pub ב־packages/pdfrx: ללא הערות.
  • flutter test --no-pub ב־packages/pdfrx: כל 54 הבדיקות עברו, כולל בדיקות בחירה, תפריטי הקשר וטעינה ברשת איטית.
  • הבדיקות הורצו ב־macOS עם PDFIUM_PATH לספרייה המקומית וקובץ מיפוי native assets מקומי שאינו חלק מהשינוי.

התיקון נדרש עבור Otzaria/otzaria#1860. מומלץ לשלב אותו גם בענף של espresso3389#733 לפני שהשינוי נתרם לאפסטרים.

@palmoni5

palmoni5 commented Oct 5, 2026

Copy link
Copy Markdown
Owner

יש לפתוח מול ענף palmoni5:feat/selected-text-if-loaded

@palmoni5
palmoni5 merged commit 8edef62 into palmoni5:perf/viewer-render-order Oct 5, 2026
@palmoni5

palmoni5 commented Oct 5, 2026

Copy link
Copy Markdown
Owner

בסדר, טופל

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants