From 6fbd50ab37a8e1e414303ba39afe99fd545fe686 Mon Sep 17 00:00:00 2001 From: "trop[bot]" <37223003+trop[bot]@users.noreply.github.com> Date: Thu, 30 Sep 2021 12:04:29 -0400 Subject: [PATCH] fix: draggable regions in BrowserViews are independent (#31198) Co-authored-by: Shelley Vohr --- shell/browser/api/electron_api_browser_window_mac.mm | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/shell/browser/api/electron_api_browser_window_mac.mm b/shell/browser/api/electron_api_browser_window_mac.mm index fa8e2919e0817..759f85096f4fa 100644 --- a/shell/browser/api/electron_api_browser_window_mac.mm +++ b/shell/browser/api/electron_api_browser_window_mac.mm @@ -39,10 +39,7 @@ void BrowserWindow::UpdateDraggableRegions( const std::vector& regions) { - if (window_->has_frame()) - return; - - if (!web_contents()) + if (window_->has_frame() || !web_contents()) return; // All ControlRegionViews should be added as children of the WebContentsView, @@ -78,8 +75,13 @@ DraggableRegionsToSkRegion(regions), webViewWidth, webViewHeight); } + // Draggable regions on BrowserViews are independent from those of + // BrowserWindows, so if a BrowserView with different draggable regions than + // the BrowserWindow it belongs to is superimposed on top of that window, the + // draggable regions of the BrowserView take precedence over those of the + // BrowserWindow. for (NativeBrowserView* view : window_->browser_views()) { - view->UpdateDraggableRegions(drag_exclude_rects); + view->UpdateDraggableRegions(view->GetDraggableRegions()); } // Create and add a ControlRegionView for each region that needs to be