Changeset 206915 in webkit
- Timestamp:
- Oct 7, 2016 9:39:21 AM (7 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r206913 r206915 1 2016-10-07 Commit Queue <commit-queue@webkit.org> 2 3 Unreviewed, rolling out r206909. 4 https://bugs.webkit.org/show_bug.cgi?id=163116 5 6 Caused most of GTK layout tests to crash (Requested by KaL on 7 #webkit). 8 9 Reverted changeset: 10 11 "[GTK] UIProcess crashes when using Japanese IM" 12 https://bugs.webkit.org/show_bug.cgi?id=163011 13 http://trac.webkit.org/changeset/206909 14 1 15 2016-10-07 Carlos Garcia Campos <cgarcia@igalia.com> 2 16 -
trunk/Source/WebKit2/UIProcess/API/gtk/WebKitWebViewBase.cpp
r206909 r206915 675 675 } 676 676 677 static gboolean webkitWebViewBaseKeyPressEvent(GtkWidget* widget, GdkEventKey* keyEvent)677 static gboolean webkitWebViewBaseKeyPressEvent(GtkWidget* widget, GdkEventKey* event) 678 678 { 679 679 WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(widget); … … 681 681 682 682 if (priv->authenticationDialog) 683 return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, keyEvent);683 return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, event); 684 684 685 685 #if ENABLE(FULLSCREEN_API) 686 686 if (priv->fullScreenModeActive) { 687 switch ( keyEvent->keyval) {687 switch (event->keyval) { 688 688 case GDK_KEY_Escape: 689 689 case GDK_KEY_f: … … 703 703 if (priv->shouldForwardNextKeyEvent) { 704 704 priv->shouldForwardNextKeyEvent = FALSE; 705 return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, keyEvent); 706 } 707 708 // We need to copy the event as otherwise it could be destroyed before we reach the lambda body. 709 GUniquePtr<GdkEvent> event(gdk_event_copy(reinterpret_cast<GdkEvent*>(keyEvent))); 710 priv->inputMethodFilter.filterKeyEvent(&event->key, [priv, event = WTFMove(event)](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) { 711 priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(event.get(), compositionResults, faked, 712 !compositionResults.compositionUpdated() ? priv->keyBindingTranslator.commandsForKeyEvent(&event->key) : Vector<String>())); 705 return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_press_event(widget, event); 706 } 707 708 priv->inputMethodFilter.filterKeyEvent(event, [priv, event](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) { 709 priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(reinterpret_cast<GdkEvent*>(event), compositionResults, faked, 710 !compositionResults.compositionUpdated() ? priv->keyBindingTranslator.commandsForKeyEvent(event) : Vector<String>())); 713 711 }); 714 712 … … 716 714 } 717 715 718 static gboolean webkitWebViewBaseKeyReleaseEvent(GtkWidget* widget, GdkEventKey* keyEvent)716 static gboolean webkitWebViewBaseKeyReleaseEvent(GtkWidget* widget, GdkEventKey* event) 719 717 { 720 718 WebKitWebViewBase* webViewBase = WEBKIT_WEB_VIEW_BASE(widget); … … 723 721 if (priv->shouldForwardNextKeyEvent) { 724 722 priv->shouldForwardNextKeyEvent = FALSE; 725 return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_release_event(widget, keyEvent); 726 } 727 728 // We need to copy the event as otherwise it could be destroyed before we reach the lambda body. 729 GUniquePtr<GdkEvent> event(gdk_event_copy(reinterpret_cast<GdkEvent*>(keyEvent))); 730 priv->inputMethodFilter.filterKeyEvent(&event->key, [priv, event = WTFMove(event)](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) { 731 priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(event.get(), compositionResults, faked, { })); 723 return GTK_WIDGET_CLASS(webkit_web_view_base_parent_class)->key_release_event(widget, event); 724 } 725 726 priv->inputMethodFilter.filterKeyEvent(event, [priv, event](const WebCore::CompositionResults& compositionResults, InputMethodFilter::EventFakedForComposition faked) { 727 priv->pageProxy->handleKeyboardEvent(NativeWebKeyboardEvent(reinterpret_cast<GdkEvent*>(event), compositionResults, faked, { })); 732 728 }); 733 729 -
trunk/Source/WebKit2/UIProcess/gtk/InputMethodFilter.h
r206909 r206915 22 22 23 23 #include <WebCore/IntPoint.h> 24 #include < wtf/Function.h>24 #include <functional> 25 25 #include <wtf/Noncopyable.h> 26 26 #include <wtf/glib/GRefPtr.h> … … 57 57 void setCursorRect(const WebCore::IntRect&); 58 58 59 using FilterKeyEventCompletionHandler = Function<void(const WebCore::CompositionResults&, InputMethodFilter::EventFakedForComposition)>;59 using FilterKeyEventCompletionHandler = std::function<void (const WebCore::CompositionResults&, InputMethodFilter::EventFakedForComposition)>; 60 60 void filterKeyEvent(GdkEventKey*, FilterKeyEventCompletionHandler&& = nullptr); 61 61 void notifyFocusedIn();
Note: See TracChangeset
for help on using the changeset viewer.