mirror of
https://github.com/bggRGjQaUbCoE/PiliPlus.git
synced 2026-06-01 08:38:18 +08:00
opt emoji tooltip
Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
import 'dart:math' as math;
|
import 'dart:math' as math;
|
||||||
import 'dart:ui' show clampDouble;
|
import 'dart:ui' show clampDouble;
|
||||||
|
|
||||||
|
import 'package:PiliPlus/utils/utils.dart';
|
||||||
import 'package:flutter/gestures.dart';
|
import 'package:flutter/gestures.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
@@ -148,11 +149,21 @@ class CustomTooltipState extends State<CustomTooltip>
|
|||||||
@protected
|
@protected
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
Widget result = Listener(
|
Widget result;
|
||||||
onPointerDown: _handlePointerDown,
|
if (Utils.isMobile) {
|
||||||
behavior: HitTestBehavior.opaque,
|
result = Listener(
|
||||||
child: widget.child,
|
onPointerDown: _handlePointerDown,
|
||||||
);
|
behavior: HitTestBehavior.opaque,
|
||||||
|
child: widget.child,
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
result = MouseRegion(
|
||||||
|
cursor: MouseCursor.defer,
|
||||||
|
onEnter: (_) => _scheduleShowTooltip(),
|
||||||
|
onExit: (_) => _scheduleDismissTooltip(),
|
||||||
|
child: widget.child,
|
||||||
|
);
|
||||||
|
}
|
||||||
return OverlayPortal(
|
return OverlayPortal(
|
||||||
controller: _overlayController,
|
controller: _overlayController,
|
||||||
overlayChildBuilder: _buildCustomTooltipOverlay,
|
overlayChildBuilder: _buildCustomTooltipOverlay,
|
||||||
@@ -184,30 +195,34 @@ class _CustomTooltipOverlay extends StatelessWidget {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return GestureDetector(
|
Widget child = CustomMultiChildLayout(
|
||||||
behavior: HitTestBehavior.opaque,
|
delegate: _CustomMultiTooltipPositionDelegate(
|
||||||
onTap: onDismiss,
|
type: type,
|
||||||
child: CustomMultiChildLayout(
|
target: target,
|
||||||
delegate: _CustomMultiTooltipPositionDelegate(
|
verticalOffset: verticalOffset,
|
||||||
type: type,
|
horizontslOffset: horizontslOffset,
|
||||||
target: target,
|
preferBelow: false,
|
||||||
verticalOffset: verticalOffset,
|
|
||||||
horizontslOffset: horizontslOffset,
|
|
||||||
preferBelow: false,
|
|
||||||
),
|
|
||||||
children: [
|
|
||||||
LayoutId(
|
|
||||||
id: 'overlay',
|
|
||||||
child: overlayWidget(),
|
|
||||||
),
|
|
||||||
if (indicator != null)
|
|
||||||
LayoutId(
|
|
||||||
id: 'indicator',
|
|
||||||
child: indicator!(),
|
|
||||||
),
|
|
||||||
],
|
|
||||||
),
|
),
|
||||||
|
children: [
|
||||||
|
LayoutId(
|
||||||
|
id: 'overlay',
|
||||||
|
child: overlayWidget(),
|
||||||
|
),
|
||||||
|
if (indicator != null)
|
||||||
|
LayoutId(
|
||||||
|
id: 'indicator',
|
||||||
|
child: indicator!(),
|
||||||
|
),
|
||||||
|
],
|
||||||
);
|
);
|
||||||
|
if (Utils.isMobile) {
|
||||||
|
return GestureDetector(
|
||||||
|
behavior: HitTestBehavior.opaque,
|
||||||
|
onTap: onDismiss,
|
||||||
|
child: child,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return child;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user