rHeight - 20*2);

        texture.needsUpdate = true;
      };
      _updateText();
      mesh.updateText = _updateText;

      const _handleDefaultKey = (code, shiftKey) => {
        let c = String.fromCharCode(code);
        if (!shiftKey) {
          c = c.toLowerCase();
        }
        _handleSingleKey(c);
      };
      const _handleSingleKey = c => {
        mesh.urlState.text = mesh.urlState.text.slice(0, mesh.urlState.cursor) + c + mesh.urlState.text.slice(mesh.urlState.cursor);
        mesh.urlSt