Title: [248291] trunk
Revision
248291
Author
hironori.fu...@sony.com
Date
2019-08-05 23:47:10 -0700 (Mon, 05 Aug 2019)

Log Message

Source/WebKit:
[Win][MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window
https://bugs.webkit.org/show_bug.cgi?id=200464

Reviewed by Ross Kirsling.

* UIProcess/API/C/WKNativeEvent.h: Define WKNativeEventPtr for WIN32.

Tools:
[MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window
https://bugs.webkit.org/show_bug.cgi?id=200464

Reviewed by Ross Kirsling.

When WK2 WebView is focused, short cut keys (e.g. Alt-F to open File
menu, Alt-F4 to close window, and etc) don't work.

WK1 WebView doesn't have this issue because it processes key events
properly.

* MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::WebKitBrowserWindow):
(WebKitBrowserWindow::didNotHandleKeyEvent): Added. Send the
unhandled key events to the main window.
* MiniBrowser/win/WebKitBrowserWindow.h:

Modified Paths

Diff

Modified: trunk/Source/WebKit/ChangeLog (248290 => 248291)


--- trunk/Source/WebKit/ChangeLog	2019-08-06 05:20:09 UTC (rev 248290)
+++ trunk/Source/WebKit/ChangeLog	2019-08-06 06:47:10 UTC (rev 248291)
@@ -1,3 +1,12 @@
+2019-08-05  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [Win][MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window
+        https://bugs.webkit.org/show_bug.cgi?id=200464
+
+        Reviewed by Ross Kirsling.
+
+        * UIProcess/API/C/WKNativeEvent.h: Define WKNativeEventPtr for WIN32.
+
 2019-08-05  Youenn Fablet  <you...@apple.com>
 
         Support RTCRtpSender.dtmf

Modified: trunk/Source/WebKit/UIProcess/API/C/WKNativeEvent.h (248290 => 248291)


--- trunk/Source/WebKit/UIProcess/API/C/WKNativeEvent.h	2019-08-06 05:20:09 UTC (rev 248290)
+++ trunk/Source/WebKit/UIProcess/API/C/WKNativeEvent.h	2019-08-06 06:47:10 UTC (rev 248291)
@@ -46,6 +46,8 @@
 #elif defined(BUILDING_GTK__)
 typedef union _GdkEvent GdkEvent;
 typedef const GdkEvent* WKNativeEventPtr;
+#elif defined(WIN32)
+typedef const struct tagMSG* WKNativeEventPtr;
 #else
 typedef const void* WKNativeEventPtr;
 #endif

Modified: trunk/Tools/ChangeLog (248290 => 248291)


--- trunk/Tools/ChangeLog	2019-08-06 05:20:09 UTC (rev 248290)
+++ trunk/Tools/ChangeLog	2019-08-06 06:47:10 UTC (rev 248291)
@@ -1,3 +1,22 @@
+2019-08-05  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [MiniBrowser][WK2] Unhandled key events should be bubbled up to the parent window
+        https://bugs.webkit.org/show_bug.cgi?id=200464
+
+        Reviewed by Ross Kirsling.
+
+        When WK2 WebView is focused, short cut keys (e.g. Alt-F to open File
+        menu, Alt-F4 to close window, and etc) don't work.
+
+        WK1 WebView doesn't have this issue because it processes key events
+        properly.
+
+        * MiniBrowser/win/WebKitBrowserWindow.cpp:
+        (WebKitBrowserWindow::WebKitBrowserWindow):
+        (WebKitBrowserWindow::didNotHandleKeyEvent): Added. Send the
+        unhandled key events to the main window.
+        * MiniBrowser/win/WebKitBrowserWindow.h:
+
 2019-08-05  Simon Fraser  <simon.fra...@apple.com>
 
         iOS 13: Overflow:hidden on body prevents PDF scroll

Modified: trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp (248290 => 248291)


--- trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp	2019-08-06 05:20:09 UTC (rev 248290)
+++ trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp	2019-08-06 06:47:10 UTC (rev 248291)
@@ -145,6 +145,7 @@
     uiClient.base.version = 13;
     uiClient.base.clientInfo = this;
     uiClient.createNewPage = createNewPage;
+    uiClient.didNotHandleKeyEvent = didNotHandleKeyEvent;
     WKPageSetPageUIClient(page, &uiClient.base);
 
     WKPageStateClientV0 stateClient = { };
@@ -377,3 +378,9 @@
     WKRetainPtr<WKPageRef> newPage = WKViewGetPage(newBrowserWindow.m_view.get());
     return newPage.leakRef();
 }
+
+void WebKitBrowserWindow::didNotHandleKeyEvent(WKPageRef, WKNativeEventPtr event, const void* clientInfo)
+{
+    auto& thisWindow = toWebKitBrowserWindow(clientInfo);
+    DefWindowProc(thisWindow.hwnd(), event->message, event->wParam, event->lParam);
+}

Modified: trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.h (248290 => 248291)


--- trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.h	2019-08-06 05:20:09 UTC (rev 248290)
+++ trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.h	2019-08-06 06:47:10 UTC (rev 248291)
@@ -69,6 +69,7 @@
     static void didCommitNavigation(WKPageRef, WKNavigationRef, WKTypeRef, const void*);
     static void didReceiveAuthenticationChallenge(WKPageRef, WKAuthenticationChallengeRef, const void*);
     static WKPageRef createNewPage(WKPageRef, WKPageConfigurationRef, WKNavigationActionRef, WKWindowFeaturesRef, const void *);
+    static void didNotHandleKeyEvent(WKPageRef, WKNativeEventPtr, const void*);
 
     WKRetainPtr<WKViewRef> m_view;
     HWND m_hMainWnd { nullptr };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to