diff --git a/shell/browser/api/electron_api_browser_window_mac.mm b/shell/browser/api/electron_api_browser_window_mac.mm index fa8e2919e081..759f85096f4f 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::OverrideNSWindowContentView( 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 @@ void BrowserWindow::UpdateDraggableRegions( 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