这个函数定义在文件external/chromium_org/ui/events/gesture_detection/touch_disposition_gesture_filter.cc中。
TouchDispositionGestureFilter类的成员函数OnGesturePacket首先推断参数packet描写叙述的Gesture Event Data Packet的类型是否等于GestureEventDataPacket::TOUCH_TIMEOUT。假设等于。而且当前的Gesture Event Data Packet队列为空。那么参数packet描写叙述的Gesture Event Data Packet就会立即被发送给Render进程。这个发送过程是通过调用TouchDispositionGestureFilter类的成员函数FilterAndSendPacket进行的。
从前面的分析能够知道。参数packet描写叙述的Gesture Event Data Packet的类型为GestureEventDataPacket::TOUCH_MOVE,因此它将不会立即被发送给Render进程,而是被保存在一个Gesture Event Data Packet队列中。那么,这个队列中的Gesture Event Data Packet什么会被发送给Render进程呢?当Render进程处理完毕Browser进程上一次发送给它的Gesture Event Data Packet之后。它就会给Browser进程发送一个ACK。Browser进程接收到这个ACK之后,就会从队列中取出下一个Gesture Event Data Packet发送给Render进程处理。
这个发送过程相同也是通过调用TouchDispositionGestureFilter类的成员函数FilterAndSendPacket进行的。因此。接下来我们就继续分析TouchDispositionGestureFilter类的成员函数FilterAndSendPacket的实现,例如以下所看到的:
void TouchDispositionGestureFilter::FilterAndSendPacket(
const GestureEventDataPacket& packet) {
......
for (size_t i = 0; i < packet.gesture_count(); ++i) {
const GestureEventData& gesture = packet.gesture(i);
......
SendGesture(gesture, packet);
}
......
} 这个函数定义在文件external/chromium_org/ui/events/gesture_detection/touch_disposition_gesture_filter.cc中。
TouchDispositionGestureFilter类的成员函数FilterAndSendPacket遍历保存在参数packet描写叙述的Gesture Event Data Packet中的每个手势操作,而且调用另外一个成员函数SendGesture分别将这些手势操作发送给Render进程。例如以下所看到的:
void TouchDispositionGestureFilter::SendGesture(
const GestureEventData& event,
const GestureEventDataPacket& packet_being_sent) {
......
client_->ForwardGestureEvent(event);
} 这个函数定义在文件external/chromium_org/ui/events/gesture_detection/touch_disposition_gesture_filter.cc中。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-81055-16.html
当然不会专注于武器装备的探讨