From 6306f833163c083bafae874a74410343240a89b6 Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Sun, 1 Feb 2026 12:18:07 +0800 Subject: [PATCH] Fix non-link text color in dialogs with links for dark theme (#14220) * Initial plan * Fix dialog text color for dark theme with links Co-authored-by: rustdesk <71636191+rustdesk@users.noreply.github.com> * Keep original link color (blue), only fix non-link text color Co-authored-by: rustdesk <71636191+rustdesk@users.noreply.github.com> * fix: dialog text color in dark theme Signed-off-by: fufesou --------- Signed-off-by: fufesou Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: rustdesk <71636191+rustdesk@users.noreply.github.com> Co-authored-by: fufesou --- flutter/lib/common.dart | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index 0650b1b5b..b941632dd 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -1124,18 +1124,23 @@ class CustomAlertDialog extends StatelessWidget { Widget createDialogContent(String text) { final RegExp linkRegExp = RegExp(r'(https?://[^\s]+)'); + bool hasLink = linkRegExp.hasMatch(text); + + // Early return: no link, use default theme color + if (!hasLink) { + return SelectableText(text, style: const TextStyle(fontSize: 15)); + } + final List spans = []; int start = 0; - bool hasLink = false; linkRegExp.allMatches(text).forEach((match) { - hasLink = true; if (match.start > start) { spans.add(TextSpan(text: text.substring(start, match.start))); } spans.add(TextSpan( text: match.group(0) ?? '', - style: TextStyle( + style: const TextStyle( color: Colors.blue, decoration: TextDecoration.underline, ), @@ -1153,13 +1158,9 @@ Widget createDialogContent(String text) { spans.add(TextSpan(text: text.substring(start))); } - if (!hasLink) { - return SelectableText(text, style: const TextStyle(fontSize: 15)); - } - return SelectableText.rich( TextSpan( - style: TextStyle(color: Colors.black, fontSize: 15), + style: const TextStyle(fontSize: 15), children: spans, ), );