|  | @@ -142,11 +142,11 @@ export const textWysiwyg = ({
 | 
	
		
			
				|  |  |      const appState = app.state;
 | 
	
		
			
				|  |  |      const updatedTextElement =
 | 
	
		
			
				|  |  |        Scene.getScene(element)?.getElement<ExcalidrawTextElement>(id);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      if (!updatedTextElement) {
 | 
	
		
			
				|  |  |        return;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      const { textAlign, verticalAlign } = updatedTextElement;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |      const approxLineHeight = getApproxLineHeight(
 | 
	
		
			
				|  |  |        getFontString(updatedTextElement),
 | 
	
		
			
				|  |  |      );
 | 
	
	
		
			
				|  | @@ -161,6 +161,7 @@ export const textWysiwyg = ({
 | 
	
		
			
				|  |  |        // Set to element height by default since that's
 | 
	
		
			
				|  |  |        // what is going to be used for unbounded text
 | 
	
		
			
				|  |  |        let textElementHeight = updatedTextElement.height;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        if (container && updatedTextElement.containerId) {
 | 
	
		
			
				|  |  |          if (isArrowElement(container)) {
 | 
	
		
			
				|  |  |            const boundTextCoords =
 | 
	
	
		
			
				|  | @@ -206,7 +207,6 @@ export const textWysiwyg = ({
 | 
	
		
			
				|  |  |          maxHeight = getMaxContainerHeight(container);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          // autogrow container height if text exceeds
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          if (!isArrowElement(container) && textElementHeight > maxHeight) {
 | 
	
		
			
				|  |  |            const diff = Math.min(
 | 
	
		
			
				|  |  |              textElementHeight - maxHeight,
 | 
	
	
		
			
				|  | @@ -276,7 +276,6 @@ export const textWysiwyg = ({
 | 
	
		
			
				|  |  |        // Make sure text editor height doesn't go beyond viewport
 | 
	
		
			
				|  |  |        const editorMaxHeight =
 | 
	
		
			
				|  |  |          (appState.height - viewportY) / appState.zoom.value;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |        Object.assign(editable.style, {
 | 
	
		
			
				|  |  |          font: getFontString(updatedTextElement),
 | 
	
		
			
				|  |  |          // must be defined *after* font ¯\_(ツ)_/¯
 | 
	
	
		
			
				|  | @@ -395,11 +394,12 @@ export const textWysiwyg = ({
 | 
	
		
			
				|  |  |        // first line as well as setting height to "auto"
 | 
	
		
			
				|  |  |        // doubles the height as soon as user starts typing
 | 
	
		
			
				|  |  |        if (isBoundToContainer(element) && lines > 1) {
 | 
	
		
			
				|  |  | +        const container = getContainerElement(element);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          let height = "auto";
 | 
	
		
			
				|  |  |          editable.style.height = "0px";
 | 
	
		
			
				|  |  |          let heightSet = false;
 | 
	
		
			
				|  |  |          if (lines === 2) {
 | 
	
		
			
				|  |  | -          const container = getContainerElement(element);
 | 
	
		
			
				|  |  |            const actualLineCount = wrapText(
 | 
	
		
			
				|  |  |              editable.value,
 | 
	
		
			
				|  |  |              font,
 | 
	
	
		
			
				|  | @@ -416,6 +416,14 @@ export const textWysiwyg = ({
 | 
	
		
			
				|  |  |              heightSet = true;
 | 
	
		
			
				|  |  |            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        const wrappedText = wrapText(
 | 
	
		
			
				|  |  | +          normalizeText(editable.value),
 | 
	
		
			
				|  |  | +          font,
 | 
	
		
			
				|  |  | +          getMaxContainerWidth(container!),
 | 
	
		
			
				|  |  | +        );
 | 
	
		
			
				|  |  | +        const width = getTextWidth(wrappedText, font);
 | 
	
		
			
				|  |  | +        editable.style.width = `${width}px`;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          if (!heightSet) {
 | 
	
		
			
				|  |  |            editable.style.height = `${editable.scrollHeight}px`;
 | 
	
		
			
				|  |  |          }
 |