mirror of
https://github.com/gabehf/Fladder.git
synced 2026-03-15 02:05:58 -07:00
fix: CustomTooltip fix
This commit is contained in:
parent
013722fc96
commit
b977bfc319
2 changed files with 83 additions and 50 deletions
|
|
@ -125,7 +125,7 @@ class _SideNavigationBarState extends ConsumerState<SideNavigationBar> {
|
||||||
padding: const EdgeInsets.all(12),
|
padding: const EdgeInsets.all(12),
|
||||||
child: Text(
|
child: Text(
|
||||||
destination.label,
|
destination.label,
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
style: Theme.of(context).textTheme.titleSmall,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -164,7 +164,7 @@ class _SideNavigationBarState extends ConsumerState<SideNavigationBar> {
|
||||||
padding: const EdgeInsets.all(12),
|
padding: const EdgeInsets.all(12),
|
||||||
child: Text(
|
child: Text(
|
||||||
view.name,
|
view.name,
|
||||||
style: Theme.of(context).textTheme.titleMedium,
|
style: Theme.of(context).textTheme.titleSmall,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
@ -206,9 +206,23 @@ class _SideNavigationBarState extends ConsumerState<SideNavigationBar> {
|
||||||
},
|
},
|
||||||
).toList(),
|
).toList(),
|
||||||
builder: (context, remaining) {
|
builder: (context, remaining) {
|
||||||
return PopupMenuButton(
|
return CustomTooltip(
|
||||||
|
tooltipContent: expandedSideBar
|
||||||
|
? null
|
||||||
|
: Card(
|
||||||
|
child: Padding(
|
||||||
|
padding: const EdgeInsets.all(12),
|
||||||
|
child: Text(
|
||||||
|
context.localized.moreOptions,
|
||||||
|
style: Theme.of(context).textTheme.titleSmall,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
position: TooltipPosition.right,
|
||||||
|
child: PopupMenuButton(
|
||||||
iconColor: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.45),
|
iconColor: Theme.of(context).colorScheme.onSurface.withValues(alpha: 0.45),
|
||||||
padding: EdgeInsets.zero,
|
padding: EdgeInsets.zero,
|
||||||
|
tooltip: "",
|
||||||
icon: NavigationButton(
|
icon: NavigationButton(
|
||||||
label: context.localized.other,
|
label: context.localized.other,
|
||||||
selectedIcon: const Icon(IconsaxPlusLinear.arrow_square_down),
|
selectedIcon: const Icon(IconsaxPlusLinear.arrow_square_down),
|
||||||
|
|
@ -260,6 +274,7 @@ class _SideNavigationBarState extends ConsumerState<SideNavigationBar> {
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.toList(),
|
.toList(),
|
||||||
|
),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|
@ -287,6 +302,7 @@ class _SideNavigationBarState extends ConsumerState<SideNavigationBar> {
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
if (AdaptiveLayout.of(context).inputDevice == InputDevice.pointer) const SizedBox(height: 16),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,31 @@ class CustomTooltipState extends State<CustomTooltip> {
|
||||||
Timer? _timer;
|
Timer? _timer;
|
||||||
final GlobalKey _tooltipKey = GlobalKey();
|
final GlobalKey _tooltipKey = GlobalKey();
|
||||||
|
|
||||||
|
Timer? _timeOut;
|
||||||
|
|
||||||
|
void _resetTimer() {
|
||||||
|
_timeOut?.cancel();
|
||||||
|
_timeOut = Timer(const Duration(seconds: 2), () {
|
||||||
|
_hideTooltip();
|
||||||
|
_timeOut = null;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
void _showTooltip() {
|
void _showTooltip() {
|
||||||
_timer = Timer(widget.showDelay, () {
|
_timer = Timer(widget.showDelay, () {
|
||||||
_overlayEntry = _createOverlayEntry();
|
_overlayEntry = _createOverlayEntry();
|
||||||
Overlay.of(context).insert(_overlayEntry!);
|
Overlay.of(context).insert(_overlayEntry!);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
_timeOut = Timer(const Duration(seconds: 2), () {
|
||||||
|
_hideTooltip();
|
||||||
|
_timeOut = null;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
void _hideTooltip() {
|
void _hideTooltip() {
|
||||||
_timer?.cancel();
|
_timer?.cancel();
|
||||||
|
_timeOut?.cancel();
|
||||||
_overlayEntry?.remove();
|
_overlayEntry?.remove();
|
||||||
_overlayEntry = null;
|
_overlayEntry = null;
|
||||||
}
|
}
|
||||||
|
|
@ -106,6 +122,7 @@ class CustomTooltipState extends State<CustomTooltip> {
|
||||||
return MouseRegion(
|
return MouseRegion(
|
||||||
onEnter: (_) => _showTooltip(),
|
onEnter: (_) => _showTooltip(),
|
||||||
onExit: (_) => _hideTooltip(),
|
onExit: (_) => _hideTooltip(),
|
||||||
|
onHover: (_) => _resetTimer(),
|
||||||
child: Stack(
|
child: Stack(
|
||||||
children: [
|
children: [
|
||||||
widget.child,
|
widget.child,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue