Title: [256889] trunk/Tools
Revision
256889
Author
hironori.fu...@sony.com
Date
2020-02-18 16:49:13 -0800 (Tue, 18 Feb 2020)

Log Message

[Win][MiniBrowser] Support back/forward mouse buttons by handing APPCOMMAND_BROWSER_BACKWARD and APPCOMMAND_BROWSER_FORWARD
https://bugs.webkit.org/show_bug.cgi?id=207883

Reviewed by Ross Kirsling.

Unlike other mouse buttons, 4th and 5th mouse buttons are
processed differently. Clicking them dispatches WM_XBUTTONDOWN and
WM_XBUTTONUP events to the window under the mouse cursor.
Unhandled WM_XBUTTONUP events are automatically converted to
WM_APPCOMMAND. And, unhandle WM_APPCOMMAND are propagated to the
parent window.
<https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-appcommand>

Unlike other WM_* commands, WM_APPCOMMAND should return 1 if it is
handled.

* MiniBrowser/win/BrowserWindow.h:
* MiniBrowser/win/MainWindow.cpp:
(MainWindow::WndProc):
* MiniBrowser/win/WebKitBrowserWindow.cpp:
(WebKitBrowserWindow::navigateForwardOrBackward):
* MiniBrowser/win/WebKitBrowserWindow.h:
* MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
(WebKitLegacyBrowserWindow::navigateForwardOrBackward):
* MiniBrowser/win/WebKitLegacyBrowserWindow.h:

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (256888 => 256889)


--- trunk/Tools/ChangeLog	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/ChangeLog	2020-02-19 00:49:13 UTC (rev 256889)
@@ -1,3 +1,31 @@
+2020-02-18  Fujii Hironori  <hironori.fu...@sony.com>
+
+        [Win][MiniBrowser] Support back/forward mouse buttons by handing APPCOMMAND_BROWSER_BACKWARD and APPCOMMAND_BROWSER_FORWARD
+        https://bugs.webkit.org/show_bug.cgi?id=207883
+
+        Reviewed by Ross Kirsling.
+
+        Unlike other mouse buttons, 4th and 5th mouse buttons are
+        processed differently. Clicking them dispatches WM_XBUTTONDOWN and
+        WM_XBUTTONUP events to the window under the mouse cursor.
+        Unhandled WM_XBUTTONUP events are automatically converted to
+        WM_APPCOMMAND. And, unhandle WM_APPCOMMAND are propagated to the
+        parent window.
+        <https://docs.microsoft.com/en-us/windows/win32/inputdev/wm-appcommand>
+
+        Unlike other WM_* commands, WM_APPCOMMAND should return 1 if it is
+        handled.
+
+        * MiniBrowser/win/BrowserWindow.h:
+        * MiniBrowser/win/MainWindow.cpp:
+        (MainWindow::WndProc):
+        * MiniBrowser/win/WebKitBrowserWindow.cpp:
+        (WebKitBrowserWindow::navigateForwardOrBackward):
+        * MiniBrowser/win/WebKitBrowserWindow.h:
+        * MiniBrowser/win/WebKitLegacyBrowserWindow.cpp:
+        (WebKitLegacyBrowserWindow::navigateForwardOrBackward):
+        * MiniBrowser/win/WebKitLegacyBrowserWindow.h:
+
 2020-02-18  Alex Christensen  <achristen...@webkit.org>
 
         Expand WKRemoteObjectCoder supported POD types to encode NSURLResponse types

Modified: trunk/Tools/MiniBrowser/win/BrowserWindow.h (256888 => 256889)


--- trunk/Tools/MiniBrowser/win/BrowserWindow.h	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/MiniBrowser/win/BrowserWindow.h	2020-02-19 00:49:13 UTC (rev 256889)
@@ -44,7 +44,7 @@
 
     virtual HRESULT loadURL(const BSTR& passedURL) = 0;
     virtual void reload() = 0;
-    virtual void navigateForwardOrBackward(UINT menuID) = 0;
+    virtual void navigateForwardOrBackward(bool forward) = 0;
     virtual void navigateToHistory(UINT menuID) = 0;
     virtual void setPreference(UINT menuID, bool enable) = 0;
     virtual bool usesLayeredWebView() const { return false; }

Modified: trunk/Tools/MiniBrowser/win/MainWindow.cpp (256888 => 256889)


--- trunk/Tools/MiniBrowser/win/MainWindow.cpp	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/MiniBrowser/win/MainWindow.cpp	2020-02-19 00:49:13 UTC (rev 256889)
@@ -253,6 +253,7 @@
 
 LRESULT CALLBACK MainWindow::WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
+    LRESULT result = 0;
     RefPtr<MainWindow> thisWindow = reinterpret_cast<MainWindow*>(GetWindowLongPtr(hWnd, GWLP_USERDATA));
     switch (message) {
     case WM_ACTIVATE:
@@ -265,6 +266,28 @@
     case WM_CREATE:
         SetWindowLongPtr(hWnd, GWLP_USERDATA, reinterpret_cast<LONG_PTR>(reinterpret_cast<LPCREATESTRUCT>(lParam)->lpCreateParams));
         break;
+    case WM_APPCOMMAND: {
+        auto cmd = GET_APPCOMMAND_LPARAM(lParam);
+        switch (cmd) {
+        case APPCOMMAND_BROWSER_BACKWARD:
+            thisWindow->browserWindow()->navigateForwardOrBackward(false);
+            result = 1;
+            break;
+        case APPCOMMAND_BROWSER_FORWARD:
+            thisWindow->browserWindow()->navigateForwardOrBackward(true);
+            result = 1;
+            break;
+        case APPCOMMAND_BROWSER_HOME:
+            break;
+        case APPCOMMAND_BROWSER_REFRESH:
+            thisWindow->browserWindow()->reload();
+            result = 1;
+            break;
+        case APPCOMMAND_BROWSER_STOP:
+            break;
+        }
+        break;
+    }
     case WM_COMMAND: {
         int wmId = LOWORD(wParam);
         int wmEvent = HIWORD(wParam);
@@ -326,7 +349,7 @@
             break;
         case IDM_HISTORY_BACKWARD:
         case IDM_HISTORY_FORWARD:
-            thisWindow->browserWindow()->navigateForwardOrBackward(wmId);
+            thisWindow->browserWindow()->navigateForwardOrBackward(wmId == IDM_HISTORY_FORWARD);
             break;
         case IDM_UA_OTHER:
             DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_USER_AGENT), hWnd, customUserAgentDialogProc, reinterpret_cast<LPARAM>(thisWindow.get()));
@@ -375,7 +398,7 @@
         return DefWindowProc(hWnd, message, wParam, lParam);
     }
 
-    return 0;
+    return result;
 }
 
 static bool menuItemIsChecked(const MENUITEMINFO& info)

Modified: trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp (256888 => 256889)


--- trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.cpp	2020-02-19 00:49:13 UTC (rev 256889)
@@ -206,10 +206,10 @@
     WKPageReload(page);
 }
 
-void WebKitBrowserWindow::navigateForwardOrBackward(UINT menuID)
+void WebKitBrowserWindow::navigateForwardOrBackward(bool forward)
 {
     auto page = WKViewGetPage(m_view.get());
-    if (menuID == IDM_HISTORY_FORWARD)
+    if (forward)
         WKPageGoForward(page);
     else
         WKPageGoBack(page);

Modified: trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.h (256888 => 256889)


--- trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.h	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/MiniBrowser/win/WebKitBrowserWindow.h	2020-02-19 00:49:13 UTC (rev 256889)
@@ -43,7 +43,7 @@
 
     HRESULT loadURL(const BSTR& url) override;
     void reload() override;
-    void navigateForwardOrBackward(UINT menuID) override;
+    void navigateForwardOrBackward(bool forward) override;
     void navigateToHistory(UINT menuID) override;
     void setPreference(UINT menuID, bool enable) override;
 

Modified: trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.cpp (256888 => 256889)


--- trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.cpp	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.cpp	2020-02-19 00:49:13 UTC (rev 256889)
@@ -411,13 +411,13 @@
 {
 }
 
-void WebKitLegacyBrowserWindow::navigateForwardOrBackward(UINT menuID)
+void WebKitLegacyBrowserWindow::navigateForwardOrBackward(bool forward)
 {
     if (!m_webView)
         return;
 
     BOOL wentBackOrForward = FALSE;
-    if (IDM_HISTORY_FORWARD == menuID)
+    if (forward)
         m_webView->goForward(&wentBackOrForward);
     else
         m_webView->goBack(&wentBackOrForward);

Modified: trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.h (256888 => 256889)


--- trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.h	2020-02-19 00:48:04 UTC (rev 256888)
+++ trunk/Tools/MiniBrowser/win/WebKitLegacyBrowserWindow.h	2020-02-19 00:49:13 UTC (rev 256889)
@@ -78,7 +78,7 @@
     void showLastVisitedSites(IWebView&);
     void launchInspector();
     void openProxySettings();
-    void navigateForwardOrBackward(UINT menuID);
+    void navigateForwardOrBackward(bool forward);
     void navigateToHistory(UINT menuID);
     bool seedInitialDefaultPreferences();
     bool setToDefaultPreferences();
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to