diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart index 2ce131c3f..fe6b104e0 100644 --- a/lib/pages/chat/events/html_message.dart +++ b/lib/pages/chat/events/html_message.dart @@ -336,6 +336,7 @@ class HtmlMessage extends StatelessWidget { ? () => onClick?.call(token) : null, child: Text.rich( + textScaler: TextScaler.noScaling, TextSpan( children: [ LinkifySpan( @@ -407,6 +408,12 @@ class HtmlMessage extends StatelessWidget { splashColor: Colors.transparent, onTap: () => UrlLauncher(context, href, node.text).launchUrl(), child: Text.rich( + // #Pangea + // Text.rich applies the device's textScaleFactor + // overriding this one since non-html messages don't + // abide by the device's textScaleFactor + textScaler: TextScaler.noScaling, + // Pangea# TextSpan( children: _renderWithLineBreaks( node.nodes, @@ -428,6 +435,9 @@ class HtmlMessage extends StatelessWidget { child: Padding( padding: EdgeInsets.only(left: fontSize), child: Text.rich( + // #Pangea + textScaler: TextScaler.noScaling, + // Pangea# TextSpan( children: [ if (node.parent?.localName == 'ul') @@ -461,6 +471,9 @@ class HtmlMessage extends StatelessWidget { ), ), child: Text.rich( + // #Pangea + textScaler: TextScaler.noScaling, + // Pangea# TextSpan( children: _renderWithLineBreaks( node.nodes, @@ -543,6 +556,9 @@ class HtmlMessage extends StatelessWidget { obscure = !obscure; }), child: Text.rich( + // #Pangea + textScaler: TextScaler.noScaling, + // Pangea# TextSpan( children: [ WidgetSpan( @@ -591,6 +607,9 @@ class HtmlMessage extends StatelessWidget { obscure = !obscure; }), child: Text.rich( + // #Pangea + textScaler: TextScaler.noScaling, + // Pangea# TextSpan( children: _renderWithLineBreaks( node.nodes, @@ -670,6 +689,9 @@ class HtmlMessage extends StatelessWidget { }, // Pangea# child: Text.rich( + // #Pangea + textScaler: TextScaler.noScaling, + // Pangea# _renderHtml( // #Pangea // parser.parse(html).body ?? dom.Element.html(''), diff --git a/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart b/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart index 2d237189a..46bed8a31 100644 --- a/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart +++ b/lib/pangea/chat_list/utils/get_chat_list_item_subtitle.dart @@ -107,6 +107,7 @@ class ChatListItemSubtitle extends StatelessWidget { maxLines: pangeaMessageEvent.room.notificationCount >= 1 ? 2 : 1, overflow: TextOverflow.ellipsis, isMessage: false, + textScaler: MediaQuery.textScalerOf(context), ); } diff --git a/lib/pangea/toolbar/widgets/message_token_text.dart b/lib/pangea/toolbar/widgets/message_token_text.dart index f917b897a..0440f98e0 100644 --- a/lib/pangea/toolbar/widgets/message_token_text.dart +++ b/lib/pangea/toolbar/widgets/message_token_text.dart @@ -74,6 +74,7 @@ class MessageTokenText extends StatelessWidget { return Text( _pangeaMessageEvent.messageDisplayText, style: _style, + textScaler: TextScaler.noScaling, ); } @@ -108,6 +109,8 @@ class MessageTextWidget extends StatelessWidget { final bool isMessage; final ReadingAssistanceMode? readingAssistanceMode; + final TextScaler? textScaler; + const MessageTextWidget({ super.key, required this.pangeaMessageEvent, @@ -123,6 +126,7 @@ class MessageTextWidget extends StatelessWidget { this.isTransitionAnimation = false, this.isMessage = true, this.readingAssistanceMode, + this.textScaler, }); @override @@ -152,6 +156,7 @@ class MessageTextWidget extends StatelessWidget { softWrap: softWrap, maxLines: maxLines, overflow: overflow, + textScaler: textScaler, ); } @@ -168,6 +173,7 @@ class MessageTextWidget extends StatelessWidget { softWrap: softWrap ?? true, maxLines: maxLines, overflow: overflow ?? TextOverflow.clip, + textScaler: textScaler ?? TextScaler.noScaling, text: TextSpan( children: tokenPositions.mapIndexed((int i, TokenPosition tokenPosition) {