diff --git a/lib/pages/chat/events/html_message.dart b/lib/pages/chat/events/html_message.dart
index 1e273b3d5..33ba9f4b6 100644
--- a/lib/pages/chat/events/html_message.dart
+++ b/lib/pages/chat/events/html_message.dart
@@ -23,6 +23,7 @@ import 'package:fluffychat/pangea/toolbar/widgets/select_mode_buttons.dart';
import 'package:fluffychat/utils/event_checkbox_extension.dart';
import 'package:fluffychat/widgets/avatar.dart';
import 'package:fluffychat/widgets/future_loading_dialog.dart';
+import 'package:fluffychat/widgets/matrix.dart';
import 'package:fluffychat/widgets/mxc_image.dart';
import '../../../utils/url_launcher.dart';
@@ -468,35 +469,44 @@ class HtmlMessage extends StatelessWidget {
animateIn: isTransitionAnimation,
textColor: textColor,
),
- MouseRegion(
- cursor: SystemMouseCursors.click,
- child: GestureDetector(
- behavior: HitTestBehavior.translucent,
- onTap: onClick != null && token != null
- ? () => onClick?.call(token)
- : null,
- child: RichText(
- textDirection: pangeaMessageEvent?.textDirection,
- text: TextSpan(
- children: [
- LinkifySpan(
- text: node.text.trim(),
- style: renderer.style(
- context,
- color: renderer.backgroundColor(
+ CompositedTransformTarget(
+ link: token != null
+ ? MatrixState.pAnyState
+ .layerLinkAndKey(
+ "message-token-${token.text.uniqueKey}-${event.eventId}",
+ )
+ .link
+ : LayerLink(),
+ child: MouseRegion(
+ cursor: SystemMouseCursors.click,
+ child: GestureDetector(
+ behavior: HitTestBehavior.translucent,
+ onTap: onClick != null && token != null
+ ? () => onClick?.call(token)
+ : null,
+ child: RichText(
+ textDirection: pangeaMessageEvent?.textDirection,
+ text: TextSpan(
+ children: [
+ LinkifySpan(
+ text: node.text.trim(),
+ style: renderer.style(
context,
- selected,
- highlighted,
- isNew,
- readingAssistanceMode ==
- ReadingAssistanceMode.practiceMode,
+ color: renderer.backgroundColor(
+ context,
+ selected,
+ highlighted,
+ isNew,
+ readingAssistanceMode ==
+ ReadingAssistanceMode.practiceMode,
+ ),
),
+ linkStyle: linkStyle,
+ onOpen: (url) =>
+ UrlLauncher(context, url.url).launchUrl(),
),
- linkStyle: linkStyle,
- onOpen: (url) =>
- UrlLauncher(context, url.url).launchUrl(),
- ),
- ],
+ ],
+ ),
),
),
),
diff --git a/lib/pangea/practice_activities/practice_activity_model.dart b/lib/pangea/practice_activities/practice_activity_model.dart
index 2b39d3a21..5844f60f9 100644
--- a/lib/pangea/practice_activities/practice_activity_model.dart
+++ b/lib/pangea/practice_activities/practice_activity_model.dart
@@ -205,7 +205,7 @@ class PracticeActivityModel {
xp: constructUseType.pointValue,
),
],
- targetID: token.text.uniqueKey,
+ targetID: "message-token-${token.text.uniqueKey}-${event?.eventId}",
),
);
}