Changeset 227544 in webkit
- Timestamp:
- Jan 24, 2018, 12:25:59 PM (9 years ago)
- Location:
- trunk/Source/WebKit
- Files:
-
- 5 edited
-
ChangeLog (modified) (1 diff)
-
Shared/gtk/WebEventFactory.cpp (modified) (1 diff)
-
UIProcess/API/gtk/PageClientImpl.cpp (modified) (2 diffs)
-
UIProcess/API/gtk/WebKitWebViewBase.cpp (modified) (5 diffs)
-
UIProcess/gtk/GestureController.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/ChangeLog
r227535 r227544 1 2018-01-24 Jan-Michael Brummer <jan.brummer@tabos.org> 2 [GTK] Page crash after swipe gesture running GNOME3 under wayland 3 4 https://bugs.webkit.org/show_bug.cgi?id=181996 5 6 Reviewed by Michael Catanzaro. 7 8 Add missing GDK_TOUCH_CANCEL support which fixes page crashes due to cancelled gestures. 9 * Shared/gtk/WebEventFactory.cpp: 10 (WebKit::WebEventFactory::createWebTouchEvent): 11 * UIProcess/API/gtk/PageClientImpl.cpp: 12 (WebKit::PageClientImpl::doneWithTouchEvent): 13 * UIProcess/API/gtk/WebKitWebViewBase.cpp: 14 (touchPointStateForEvents): 15 (webkitWebViewBaseGetTouchPointsForEvent): 16 (webkitWebViewBaseTouchEvent): 17 * UIProcess/gtk/GestureController.cpp: 18 (WebKit::GestureController::handleEvent): 19 1 20 2018-01-24 Alex Christensen <achristensen@webkit.org> 2 21 -
trunk/Source/WebKit/Shared/gtk/WebEventFactory.cpp
r223264 r227544 248 248 type = WebEvent::TouchEnd; 249 249 break; 250 case GDK_TOUCH_CANCEL: 251 type = WebEvent::TouchCancel; 252 break; 250 253 default: 251 254 ASSERT_NOT_REACHED(); -
trunk/Source/WebKit/UIProcess/API/gtk/PageClientImpl.cpp
r226323 r227544 48 48 #include <WebCore/GtkUtilities.h> 49 49 #include <WebCore/RefPtrCairo.h> 50 #include <wtf/Compiler.h> 50 51 #include <wtf/text/CString.h> 51 52 #include <wtf/text/WTFString.h> … … 373 374 } else { 374 375 switch (touchEvent->type) { 376 case GDK_TOUCH_CANCEL: 377 FALLTHROUGH; 375 378 case GDK_TOUCH_END: 376 379 pointerEvent.reset(gdk_event_new(GDK_BUTTON_RELEASE)); -
trunk/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
r227519 r227544 65 65 #include <memory> 66 66 #include <pal/system/SleepDisabler.h> 67 #include <wtf/Compiler.h> 67 68 #include <wtf/HashMap.h> 68 69 #include <wtf/glib/GRefPtr.h> … … 896 897 case GDK_TOUCH_END: 897 898 return WebPlatformTouchPoint::TouchReleased; 899 case GDK_TOUCH_CANCEL: 900 return WebPlatformTouchPoint::TouchCancelled; 898 901 default: 899 902 return WebPlatformTouchPoint::TouchStationary; … … 904 907 { 905 908 WebKitWebViewBasePrivate* priv = webViewBase->priv; 906 touchPoints.reserveInitialCapacity(event->type == GDK_TOUCH_END ? priv->touchEvents.size() + 1 : priv->touchEvents.size()); 909 bool touchEnd = (event->type == GDK_TOUCH_END) || (event->type == GDK_TOUCH_CANCEL); 910 touchPoints.reserveInitialCapacity(touchEnd ? priv->touchEvents.size() + 1 : priv->touchEvents.size()); 907 911 908 912 for (const auto& it : priv->touchEvents) … … 910 914 911 915 // Touch was already removed from the TouchEventsMap, add it here. 912 if ( event->type == GDK_TOUCH_END)916 if (touchEnd) 913 917 appendTouchEvent(touchPoints, event, WebPlatformTouchPoint::TouchReleased); 914 918 } … … 938 942 break; 939 943 } 944 case GDK_TOUCH_CANCEL: 945 FALLTHROUGH; 940 946 case GDK_TOUCH_END: 941 947 ASSERT(priv->touchEvents.contains(sequence)); -
trunk/Source/WebKit/UIProcess/gtk/GestureController.cpp
r222855 r227544 50 50 { 51 51 bool wasProcessingGestures = isProcessingGestures(); 52 bool touchEnd; 52 53 m_dragGesture.handleEvent(event); 53 54 m_swipeGesture.handleEvent(event); 54 55 m_zoomGesture.handleEvent(event); 55 return event->type == GDK_TOUCH_END ? wasProcessingGestures : isProcessingGestures(); 56 touchEnd = (event->type == GDK_TOUCH_END) || (event->type == GDK_TOUCH_CANCEL); 57 return touchEnd ? wasProcessingGestures : isProcessingGestures(); 56 58 } 57 59
Note:
See TracChangeset
for help on using the changeset viewer.