[okular] [Bug 479070] Okular hangs when editing Chinese characters in inline note annotation

Albert Astals Cid bugzilla_noreply at kde.org
Fri Dec 29 12:17:46 GMT 2023


https://bugs.kde.org/show_bug.cgi?id=479070

--- Comment #23 from Albert Astals Cid <aacid at kde.org> ---
(In reply to Keyu Tao from comment #22)
> (In reply to Albert Astals Cid from comment #21)
> 
> > How much do you know about programming? If i tell you do add some printf in
> > the poppler code is that something you can do?
> 
> Yes, as I got this conclusion just by adding `std::cout` inside poppler code
> :)

Ok, can you please print
  rect->x2 
  rect->x1
  width
  borderWidth
  textwidth
  da.getFontPtSize()
before the call to
  const DrawMultiLineTextResult textCommands = drawMultiLineText(*contents,
textwidth, form, *font, da.getFontName().getName(), da.getFontPtSize(),
quadding, 0 /*borderWidth*/);
in
  generateFreeTextAppearance()


Also i'm guessing 

diff --git a/poppler/Annot.cc b/poppler/Annot.cc
index b4c4a771..8a50225f 100644
--- a/poppler/Annot.cc
+++ b/poppler/Annot.cc
@@ -3036,7 +3036,7 @@ public:
             *availableWidth -= blockWidth;
         }

-        while (newFontNeeded && (!availableWidth || *availableWidth > 0)) {
+        while (newFontNeeded && (!availableWidth || *availableWidth > 0||
(isUnicode && i == 2) || (!isUnicode && i == 0))) {
             if (!form) {
                 // There's no fonts to look for, so just skip the characters
                 i += isUnicode ? 2 : 1;


Will fix your problem too but i'd like to figure out how availableWidth gets to
be negative

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the Okular-devel mailing list