Authentication-Results: mail-b.sr.ht; dkim=pass header.d=dille.cc header.i=@dille.cc Received: from mail.saucisseroyale.cc (11.8.91.92.rev.sfr.net [92.91.8.11]) by mail-b.sr.ht (Postfix) with ESMTPS id B5FAB11EF38 for <~emersion/goguma-dev@lists.sr.ht>; Fri, 16 Dec 2022 21:26:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=dille.cc; s=mail; t=1671225974; bh=0UkSkmxJW7rAuB5RGW3AK9wiWuQzD+Q71dcQJsbSB8Y=; h=From:To:Cc:Subject:Date:From; b=Oat+jzNVUAfHcK3rv6x18SDMysDwNKeOpvw0SyByiaN4kksSmHsRtgcm/5VOM5qNZ 8SsrNptq3ur4MmNBj33q1DkrzrJ9o/PdAxSo8DIEL9hz5cqHzUxDAG/lyo+DydA4sk tNUrPg0jfRpLuFh8otbLu7rZc9ipCnzw89/hINTONyTfxHDjQZ5mEmo2AJWCiUtGsZ 8zVbspLRP/a04VpFmIuRcnYVEK/mhY20W15XJUhRaVCn95172ukx9pphTHRGMIKsVI Wu29Z1UPU9YXVQJ3cjsVSX74OPmy6BxqIGeqnjPHL04hPo6+6L0IGopg1VWz5oE58n lg3GTMKtFpnyQ== Received: from tflament-T490.localhost (82-65-230-251.subs.proxad.net [82.65.230.251]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.saucisseroyale.cc (Postfix) with ESMTPSA id C85F7816D1; Fri, 16 Dec 2022 22:26:14 +0100 (CET) From: delthas To: ~emersion/goguma-dev@lists.sr.ht Cc: delthas Subject: [PATCH] Fix regression in compact message formatting Date: Fri, 16 Dec 2022 22:26:12 +0100 Message-Id: <20221216212612.29967-1-delthas@dille.cc> X-Mailer: git-send-email 2.17.1 A recent commit [1] broke mesage formatting in compact message mode. Linkify was stripping all formatting, and the style was never passed back before displaying it. We cannot just rely on a DefaultStyle here because there are multiple styles we want to apply, one per formatting span found in the IRC message formatting. Instead, this patch adds back the text style parameter to linkify, but making it optional. [1]: 6c7c51b029c9be8664c958279f632313bac5f193 --- lib/linkify.dart | 3 ++- lib/page/buffer.dart | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/linkify.dart b/lib/linkify.dart index 1d0b18a..5b5e13f 100644 --- a/lib/linkify.dart +++ b/lib/linkify.dart @@ -20,7 +20,7 @@ List extractLinks(String text, [NetworkModel? network]) { } TextSpan linkify(BuildContext context, String text, { - required TextStyle linkStyle, + required TextStyle linkStyle, TextStyle? textStyle }) { NetworkModel? network; try { @@ -43,6 +43,7 @@ TextSpan linkify(BuildContext context, String text, { throw Exception('Failed to launch URL: ${link.url}'); } }, + style: textStyle, linkStyle: linkStyle, ); } diff --git a/lib/page/buffer.dart b/lib/page/buffer.dart index 80641ed..a8fc1c3 100644 --- a/lib/page/buffer.dart +++ b/lib/page/buffer.dart @@ -428,7 +428,7 @@ class _CompactMessageItem extends StatelessWidget { var textStyle = TextStyle(color: Theme.of(context).textTheme.bodyText1!.color); List textSpans; - if (ctcp != null && ctcp.cmd == 'ACTION') { + if (ctcp != null) { textStyle = textStyle.apply(fontStyle: FontStyle.italic); if (ctcp.cmd == 'ACTION') { @@ -441,7 +441,8 @@ class _CompactMessageItem extends StatelessWidget { } textSpans = textSpans.map((span) { - return linkify(context, span.text!, linkStyle: TextStyle(decoration: TextDecoration.underline)); + var linkStyle = span.style!.apply(decoration: TextDecoration.underline); + return linkify(context, span.text!, textStyle: span.style!, linkStyle: linkStyle); }).toList(); List stack = []; base-commit: c4df7fe91caae2ba0f4d3af0df8fb62757556790 -- 2.17.1