From 4e10a0e3539db1ddcf95a1bb3c3a84c36d16c9ab Mon Sep 17 00:00:00 2001 From: Kelrap Date: Thu, 5 Jun 2025 14:50:44 -0400 Subject: [PATCH 1/4] Add tooltips to all RoomDetailsButtons --- .../pages/pangea_chat_details.dart | 85 ++++++++++--------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/lib/pangea/chat_settings/pages/pangea_chat_details.dart b/lib/pangea/chat_settings/pages/pangea_chat_details.dart index de2cb01b5..a73556afb 100644 --- a/lib/pangea/chat_settings/pages/pangea_chat_details.dart +++ b/lib/pangea/chat_settings/pages/pangea_chat_details.dart @@ -1,13 +1,6 @@ import 'dart:async'; -import 'package:flutter/material.dart'; - import 'package:collection/collection.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; - import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pages/chat_details/participant_list_item.dart'; @@ -33,6 +26,11 @@ import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; class PangeaChatDetailsView extends StatelessWidget { final ChatDetailsController controller; @@ -596,43 +594,46 @@ class RoomDetailsButton extends StatelessWidget { return const SizedBox(); } - return AbsorbPointer( - absorbing: !buttonDetails.enabled, - child: MouseRegion( - cursor: SystemMouseCursors.click, - child: HoverBuilder( - builder: (context, hovered) { - return GestureDetector( - onTap: buttonDetails.onPressed, - child: Opacity( - opacity: buttonDetails.enabled ? 1.0 : 0.5, - child: Container( - width: width, - height: height, - decoration: BoxDecoration( - color: hovered - ? Theme.of(context).colorScheme.primary.withAlpha(50) - : Colors.transparent, - borderRadius: BorderRadius.circular(8), + return Tooltip( + message: buttonDetails.title, + child: AbsorbPointer( + absorbing: !buttonDetails.enabled, + child: MouseRegion( + cursor: SystemMouseCursors.click, + child: HoverBuilder( + builder: (context, hovered) { + return GestureDetector( + onTap: buttonDetails.onPressed, + child: Opacity( + opacity: buttonDetails.enabled ? 1.0 : 0.5, + child: Container( + width: width, + height: height, + decoration: BoxDecoration( + color: hovered + ? Theme.of(context).colorScheme.primary.withAlpha(50) + : Colors.transparent, + borderRadius: BorderRadius.circular(8), + ), + padding: const EdgeInsets.all(8.0), + child: mini + ? buttonDetails.icon + : Column( + spacing: 8.0, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + buttonDetails.icon, + Text( + buttonDetails.title, + textAlign: TextAlign.center, + ), + ], + ), ), - padding: const EdgeInsets.all(8.0), - child: mini - ? buttonDetails.icon - : Column( - spacing: 8.0, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - buttonDetails.icon, - Text( - buttonDetails.title, - textAlign: TextAlign.center, - ), - ], - ), ), - ), - ); - }, + ); + }, + ), ), ), ); From 01a743e76b968f93e3c5a27629abd74c0fb7eb9e Mon Sep 17 00:00:00 2001 From: Kelrap Date: Thu, 5 Jun 2025 14:54:16 -0400 Subject: [PATCH 2/4] Formatting --- .../chat_settings/pages/pangea_chat_details.dart | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/pangea/chat_settings/pages/pangea_chat_details.dart b/lib/pangea/chat_settings/pages/pangea_chat_details.dart index a73556afb..6a08f98a5 100644 --- a/lib/pangea/chat_settings/pages/pangea_chat_details.dart +++ b/lib/pangea/chat_settings/pages/pangea_chat_details.dart @@ -1,6 +1,13 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pages/chat_details/participant_list_item.dart'; @@ -26,11 +33,6 @@ import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class PangeaChatDetailsView extends StatelessWidget { final ChatDetailsController controller; From 0ea29cef088ee6b885a559df9a75c0c6bdd627ad Mon Sep 17 00:00:00 2001 From: Kelrap Date: Fri, 6 Jun 2025 15:15:11 -0400 Subject: [PATCH 3/4] Only show tooltips in mini mode --- lib/pangea/chat_settings/pages/pangea_chat_details.dart | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/pangea/chat_settings/pages/pangea_chat_details.dart b/lib/pangea/chat_settings/pages/pangea_chat_details.dart index cb2633395..4816a2546 100644 --- a/lib/pangea/chat_settings/pages/pangea_chat_details.dart +++ b/lib/pangea/chat_settings/pages/pangea_chat_details.dart @@ -601,7 +601,11 @@ class RoomDetailsButton extends StatelessWidget { return const SizedBox(); } - return AbsorbPointer( + return TooltipVisibility( + visible: mini, + child: Tooltip( + message: buttonDetails.title, + child: AbsorbPointer( absorbing: !buttonDetails.enabled, child: MouseRegion( cursor: SystemMouseCursors.click, @@ -640,6 +644,8 @@ class RoomDetailsButton extends StatelessWidget { ); }, ), + ), + ), ), ); } From 48ff16b5a9c5c2d291bddb202081c10ba6012941 Mon Sep 17 00:00:00 2001 From: Kelrap Date: Fri, 6 Jun 2025 15:16:06 -0400 Subject: [PATCH 4/4] Formatting --- .../pages/pangea_chat_details.dart | 89 ++++++++++--------- 1 file changed, 47 insertions(+), 42 deletions(-) diff --git a/lib/pangea/chat_settings/pages/pangea_chat_details.dart b/lib/pangea/chat_settings/pages/pangea_chat_details.dart index 4816a2546..5c4c7d454 100644 --- a/lib/pangea/chat_settings/pages/pangea_chat_details.dart +++ b/lib/pangea/chat_settings/pages/pangea_chat_details.dart @@ -1,6 +1,13 @@ import 'dart:async'; +import 'package:flutter/material.dart'; + import 'package:collection/collection.dart'; +import 'package:flutter_gen/gen_l10n/l10n.dart'; +import 'package:flutter_linkify/flutter_linkify.dart'; +import 'package:go_router/go_router.dart'; +import 'package:matrix/matrix.dart'; + import 'package:fluffychat/config/themes.dart'; import 'package:fluffychat/pages/chat_details/chat_details.dart'; import 'package:fluffychat/pages/chat_details/participant_list_item.dart'; @@ -26,11 +33,6 @@ import 'package:fluffychat/widgets/hover_builder.dart'; import 'package:fluffychat/widgets/layouts/max_width_body.dart'; import 'package:fluffychat/widgets/matrix.dart'; import 'package:fluffychat/widgets/member_actions_popup_menu_button.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_gen/gen_l10n/l10n.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; -import 'package:go_router/go_router.dart'; -import 'package:matrix/matrix.dart'; class PangeaChatDetailsView extends StatelessWidget { final ChatDetailsController controller; @@ -606,44 +608,47 @@ class RoomDetailsButton extends StatelessWidget { child: Tooltip( message: buttonDetails.title, child: AbsorbPointer( - absorbing: !buttonDetails.enabled, - child: MouseRegion( - cursor: SystemMouseCursors.click, - child: HoverBuilder( - builder: (context, hovered) { - return GestureDetector( - onTap: buttonDetails.onPressed, - child: Opacity( - opacity: buttonDetails.enabled ? 1.0 : 0.5, - child: Container( - width: width, - height: height, - decoration: BoxDecoration( - color: hovered - ? Theme.of(context).colorScheme.primary.withAlpha(50) - : Colors.transparent, - borderRadius: BorderRadius.circular(8), - ), - padding: const EdgeInsets.all(12.0), - child: mini - ? buttonDetails.icon - : Column( - spacing: 12.0, - mainAxisAlignment: MainAxisAlignment.center, - children: [ - buttonDetails.icon, - Text( - buttonDetails.title, - textAlign: TextAlign.center, - style: const TextStyle(fontSize: 12.0), + absorbing: !buttonDetails.enabled, + child: MouseRegion( + cursor: SystemMouseCursors.click, + child: HoverBuilder( + builder: (context, hovered) { + return GestureDetector( + onTap: buttonDetails.onPressed, + child: Opacity( + opacity: buttonDetails.enabled ? 1.0 : 0.5, + child: Container( + width: width, + height: height, + decoration: BoxDecoration( + color: hovered + ? Theme.of(context) + .colorScheme + .primary + .withAlpha(50) + : Colors.transparent, + borderRadius: BorderRadius.circular(8), + ), + padding: const EdgeInsets.all(12.0), + child: mini + ? buttonDetails.icon + : Column( + spacing: 12.0, + mainAxisAlignment: MainAxisAlignment.center, + children: [ + buttonDetails.icon, + Text( + buttonDetails.title, + textAlign: TextAlign.center, + style: const TextStyle(fontSize: 12.0), + ), + ], ), - ], - ), - ), - ), - ); - }, - ), + ), + ), + ); + }, + ), ), ), ),