onPointerDown method
指针按下处理
Implementation
@mustCallSuper
@override
bool? onPointerDown(PointerDownEvent e) {
super.onPointerDown(e);
pointType = e.buttons;
tapDownPosition = e.position;
tapDownTime = currentMilliseconds;
isCancel = null;
// 处理主指针
if (pointType == kPrimaryButton) {
cancelTapUpTimer();
onTapDown(e);
}
// 处理第二指针(鼠标右键,只响应最内层事件,不允许冒泡)
else if (pointType == kSecondaryButton) {
if (enabledSecondaryTap) {
ElPointerManager.isOpen = false;
ElPointerManager.eager(hashCode);
// 在 web 端需要阻止浏览器原生右键事件
if (kIsWeb) {
if (preventContextMenuTimer != null) {
preventContextMenuTimer!.cancel();
preventContextMenuTimer = null;
} else {
BrowserContextMenu.disableContextMenu().then((res) {
onSecondaryTapDown(e);
});
}
} else {
onSecondaryTapDown(e);
}
}
}
// 处理第三指针(鼠标中键,只响应最内层事件,不允许冒泡)
else if (pointType == kTertiaryButton) {
if (enabledTertiaryTap) {
ElPointerManager.isOpen = false;
ElPointerManager.eager(hashCode);
onTertiaryTapDown(e);
}
}
// 处理鼠标前进按钮事件(只响应最内层事件,不允许冒泡)
else if (pointType == kForwardMouseButton) {
if (enabledForwardTap) {
ElPointerManager.isOpen = false;
ElPointerManager.eager(hashCode);
onForwardTapDown(e);
}
} // 处理鼠标后退按钮事件(只响应最内层事件,不允许冒泡)
else if (pointType == kBackMouseButton) {
if (enabledBackTap) {
ElPointerManager.isOpen = false;
ElPointerManager.eager(hashCode);
onBackTapDown(e);
}
}
return true;
}