|
@@ -0,0 +1,76 @@
|
|
|
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
|
+From: deepak1556 <[email protected]>
|
|
|
+Date: Fri, 29 Jul 2022 00:29:35 +0900
|
|
|
+Subject: chore: allow chromium to handle synthetic mouse events for touch
|
|
|
+
|
|
|
+With WCO, allow chromium to handle synthetic mouse events generated for touch
|
|
|
+actions in the non-client caption area.
|
|
|
+
|
|
|
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
|
|
|
+index 9fd052c00a484cd1acd2031fda79e6307fd01b60..016dfe880a48168154c08839afa540880c2d52be 100644
|
|
|
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
|
|
|
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
|
|
|
+@@ -1169,6 +1169,10 @@ void DesktopWindowTreeHostWin::HandleWindowScaleFactorChanged(
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
++bool DesktopWindowTreeHostWin::HandleMouseEventForCaption(UINT message) const {
|
|
|
++ return false;
|
|
|
++}
|
|
|
++
|
|
|
+ DesktopNativeCursorManager*
|
|
|
+ DesktopWindowTreeHostWin::GetSingletonDesktopNativeCursorManager() {
|
|
|
+ return new DesktopNativeCursorManagerWin();
|
|
|
+diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
|
|
|
+index 444581249014a8ce301591f269dbb194f0520732..9377f26b081b717db6b50c13ce3795907cf2fcd2 100644
|
|
|
+--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
|
|
|
++++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
|
|
|
+@@ -262,6 +262,7 @@ class VIEWS_EXPORT DesktopWindowTreeHostWin
|
|
|
+ void HandleWindowSizeChanging() override;
|
|
|
+ void HandleWindowSizeUnchanged() override;
|
|
|
+ void HandleWindowScaleFactorChanged(float window_scale_factor) override;
|
|
|
++ bool HandleMouseEventForCaption(UINT message) const override;
|
|
|
+
|
|
|
+ Widget* GetWidget();
|
|
|
+ const Widget* GetWidget() const;
|
|
|
+diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
|
|
|
+index 01ff95be00b3911749f66a136b2b5a6c02156bd3..23e8794c0551c377269ebecd6684206fc7087553 100644
|
|
|
+--- a/ui/views/win/hwnd_message_handler.cc
|
|
|
++++ b/ui/views/win/hwnd_message_handler.cc
|
|
|
+@@ -3064,15 +3064,19 @@ LRESULT HWNDMessageHandler::HandleMouseEventInternal(UINT message,
|
|
|
+ SetMsgHandled(FALSE);
|
|
|
+ // We must let Windows handle the caption buttons if it's drawing them, or
|
|
|
+ // they won't work.
|
|
|
++ bool simulate_mouse_event_for_caption = false;
|
|
|
+ if (delegate_->GetFrameMode() == FrameMode::SYSTEM_DRAWN &&
|
|
|
+ (hittest == HTCLOSE || hittest == HTMINBUTTON ||
|
|
|
+ hittest == HTMAXBUTTON)) {
|
|
|
+- SetMsgHandled(FALSE);
|
|
|
++ simulate_mouse_event_for_caption =
|
|
|
++ delegate_->HandleMouseEventForCaption(message);
|
|
|
++ if (!simulate_mouse_event_for_caption)
|
|
|
++ SetMsgHandled(FALSE);
|
|
|
+ }
|
|
|
+ // Let resize events fall through. Ignore everything else, as we're either
|
|
|
+ // letting Windows handle it above or we've already handled the equivalent
|
|
|
+ // touch message.
|
|
|
+- if (!IsHitTestOnResizeHandle(hittest))
|
|
|
++ if (!IsHitTestOnResizeHandle(hittest) && !simulate_mouse_event_for_caption)
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+diff --git a/ui/views/win/hwnd_message_handler_delegate.h b/ui/views/win/hwnd_message_handler_delegate.h
|
|
|
+index 5dbb192d0840ca0ded61397c399b774a8cb05cce..098a9c3140e9e140fdc8f0dc9cf4e8ec84451221 100644
|
|
|
+--- a/ui/views/win/hwnd_message_handler_delegate.h
|
|
|
++++ b/ui/views/win/hwnd_message_handler_delegate.h
|
|
|
+@@ -258,6 +258,10 @@ class VIEWS_EXPORT HWNDMessageHandlerDelegate {
|
|
|
+ // Called when the window scale factor has changed.
|
|
|
+ virtual void HandleWindowScaleFactorChanged(float window_scale_factor) = 0;
|
|
|
+
|
|
|
++ // Called when synthetic mouse event is generated for touch event on
|
|
|
++ // caption buttons.
|
|
|
++ virtual bool HandleMouseEventForCaption(UINT message) const = 0;
|
|
|
++
|
|
|
+ protected:
|
|
|
+ virtual ~HWNDMessageHandlerDelegate() = default;
|
|
|
+ };
|