diff options
| author | bobzel <zzzman@gmail.com> | 2024-03-01 08:23:06 -0500 | 
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2024-03-01 08:23:06 -0500 | 
| commit | 25474b83f908732b2618cb7110f1e410030f9280 (patch) | |
| tree | a942453765eb876ffaa3899d623fa77e13a196b4 /src/client/views/nodes/formattedText/RichTextMenu.tsx | |
| parent | 4e837a73f5fae06368416f99c047d78f6b94565b (diff) | |
| parent | 3179048be75fb7662fc472249798b2d103dc5544 (diff) | |
Merge branch 'master' into info-ui-observable
Diffstat (limited to 'src/client/views/nodes/formattedText/RichTextMenu.tsx')
| -rw-r--r-- | src/client/views/nodes/formattedText/RichTextMenu.tsx | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/src/client/views/nodes/formattedText/RichTextMenu.tsx b/src/client/views/nodes/formattedText/RichTextMenu.tsx index 5858c3b11..cd0cdaa74 100644 --- a/src/client/views/nodes/formattedText/RichTextMenu.tsx +++ b/src/client/views/nodes/formattedText/RichTextMenu.tsx @@ -141,12 +141,14 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {          const activeSizes = active.activeSizes;          const activeColors = active.activeColors;          const activeHighlights = active.activeHighlights; +        const refDoc = SelectionManager.Views.lastElement()?.layoutDoc ?? Doc.UserDoc(); +        const refField = (pfx => (pfx ? pfx + '_' : ''))(SelectionManager.Views.lastElement()?.LayoutFieldKey);          this.activeListType = this.getActiveListStyle();          this._activeAlignment = this.getActiveAlignment(); -        this._activeFontFamily = !activeFamilies.length ? StrCast(this.TextView?.Document._text_fontFamily, StrCast(Doc.UserDoc().fontFamily, 'Arial')) : activeFamilies.length === 1 ? String(activeFamilies[0]) : 'various'; -        this._activeFontSize = !activeSizes.length ? StrCast(this.TextView?.Document.fontSize, StrCast(Doc.UserDoc().fontSize, '10px')) : activeSizes[0]; -        this._activeFontColor = !activeColors.length ? StrCast(this.TextView?.Document.fontColor, StrCast(Doc.UserDoc().fontColor, 'black')) : activeColors.length > 0 ? String(activeColors[0]) : '...'; +        this._activeFontFamily = !activeFamilies.length ? StrCast(this.TextView?.Document._text_fontFamily, StrCast(refDoc[refField + 'fontFamily'], 'Arial')) : activeFamilies.length === 1 ? String(activeFamilies[0]) : 'various'; +        this._activeFontSize = !activeSizes.length ? StrCast(this.TextView?.Document.fontSize, StrCast(refDoc[refField + 'fontSize'], '10px')) : activeSizes[0]; +        this._activeFontColor = !activeColors.length ? StrCast(this.TextView?.Document.fontColor, StrCast(refDoc[refField + 'fontColor'], 'black')) : activeColors.length > 0 ? String(activeColors[0]) : '...';          this._activeHighlightColor = !activeHighlights.length ? '' : activeHighlights.length > 0 ? String(activeHighlights[0]) : '...';          // update link in current selection @@ -358,8 +360,8 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {                  this.setMark(fmark, this.view.state, (tx: any) => this.view!.dispatch(tx.addStoredMark(fmark)), true);                  this.view.focus();              } -        } else if (SelectionManager.Views.some(dv => dv.ComponentView instanceof EquationBox)) { -            SelectionManager.Views.forEach(dv => (dv.Document._text_fontSize = fontSize)); +        } else if (SelectionManager.Views.length) { +            SelectionManager.Views.forEach(dv => (dv.layoutDoc[dv.LayoutFieldKey + '_fontSize'] = fontSize));          } else Doc.UserDoc().fontSize = fontSize;          this.updateMenu(this.view, undefined, this.props, this.layoutDoc);      }; @@ -369,6 +371,8 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {              const fmark = this.view.state.schema.marks.pFontFamily.create({ family: family });              this.setMark(fmark, this.view.state, (tx: any) => this.view!.dispatch(tx.addStoredMark(fmark)), true);              this.view.focus(); +        } else if (SelectionManager.Views.length) { +            SelectionManager.Views.forEach(dv => (dv.layoutDoc[dv.LayoutFieldKey + '_fontFamily'] = family));          } else Doc.UserDoc().fontFamily = family;          this.updateMenu(this.view, undefined, this.props, this.layoutDoc);      }; @@ -387,6 +391,8 @@ export class RichTextMenu extends AntimodeMenu<AntimodeMenuProps> {              const colorMark = this.view.state.schema.mark(this.view.state.schema.marks.pFontColor, { color });              this.setMark(colorMark, this.view.state, (tx: any) => this.view!.dispatch(tx.addStoredMark(colorMark)), true);              this.view.focus(); +        } else if (SelectionManager.Views.length) { +            SelectionManager.Views.forEach(dv => (dv.layoutDoc[dv.LayoutFieldKey + '_fontColor'] = color));          } else Doc.UserDoc().fontColor = color;          this.updateMenu(this.view, undefined, this.props, this.layoutDoc);      } | 
