mirror of
https://github.com/zen-browser/pdf.js.git
synced 2025-07-10 02:05:37 +02:00
[api-minor] Annotation -- Don't compute appearance when nothing has changed
* don't set a value in annotationStorage by default: - having an undefined when the annotation is rendered for saving/printing means nothing has changed so use normal appearance - aims to fix https://bugzilla.mozilla.org/show_bug.cgi?id=1681687 * change the way to compute font size when this one is null in DA: - make fontSize proportional to line height - in multiline case, take into account the number of lines for text entered to adapt the font size
This commit is contained in:
parent
a8021208ea
commit
ea06bb0e36
5 changed files with 81 additions and 40 deletions
|
@ -603,7 +603,7 @@ class TextWidgetAnnotationElement extends WidgetAnnotationElement {
|
|||
// NOTE: We cannot set the values using `element.value` below, since it
|
||||
// prevents the AnnotationLayer rasterizer in `test/driver.js`
|
||||
// from parsing the elements correctly for the reference tests.
|
||||
const textContent = storage.getOrCreateValue(id, {
|
||||
const textContent = storage.getValue(id, {
|
||||
value: this.data.fieldValue,
|
||||
}).value;
|
||||
const elementData = {
|
||||
|
@ -873,7 +873,7 @@ class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {
|
|||
const storage = this.annotationStorage;
|
||||
const data = this.data;
|
||||
const id = data.id;
|
||||
const value = storage.getOrCreateValue(id, {
|
||||
const value = storage.getValue(id, {
|
||||
value:
|
||||
data.fieldValue &&
|
||||
((data.exportValue && data.exportValue === data.fieldValue) ||
|
||||
|
@ -962,7 +962,7 @@ class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {
|
|||
const storage = this.annotationStorage;
|
||||
const data = this.data;
|
||||
const id = data.id;
|
||||
const value = storage.getOrCreateValue(id, {
|
||||
const value = storage.getValue(id, {
|
||||
value: data.fieldValue === data.buttonValue,
|
||||
}).value;
|
||||
|
||||
|
@ -1072,9 +1072,9 @@ class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {
|
|||
// are not properly printed/saved yet, so we only store the first item in
|
||||
// the field value array instead of the entire array. Once support for those
|
||||
// two field types is implemented, we should use the same pattern as the
|
||||
// other interactive widgets where the return value of `getOrCreateValue` is
|
||||
// used and the full array of field values is stored.
|
||||
storage.getOrCreateValue(id, {
|
||||
// other interactive widgets where the return value of `getValue`
|
||||
// is used and the full array of field values is stored.
|
||||
storage.getValue(id, {
|
||||
value:
|
||||
this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined,
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue