99
1010#include " brave/browser/ui/views/frame/brave_browser_view.h"
1111#include " brave/browser/ui/views/side_panel/brave_side_panel.h"
12+ #include " build/build_config.h"
13+ #include " ui/base/metadata/metadata_impl_macros.h"
1214#include " ui/views/controls/resize_area.h"
1315#include " ui/views/layout/fill_layout.h"
1416#include " ui/views/widget/widget.h"
1820#include " ui/views/view_constants_aura.h"
1921#endif
2022
23+ #if BUILDFLAG(IS_MAC)
24+ namespace {
25+
26+ // Subclassed to clear resize cursor when goes out. On macOS, it seems
27+ // widget doesn't clear current cursor(resize) when mouse goes out in some
28+ // specific situation unexpectedly. Because of that, cursor is not changed when
29+ // mouse moves in. Widget doesn't update its cursor if requested one is same
30+ // with previous one. Maybe this problem happens because it's located above
31+ // WebView.
32+ class CustomResizeArea : public views ::ResizeArea {
33+ METADATA_HEADER (CustomResizeArea, views::ResizeArea)
34+ public:
35+ using ResizeArea::ResizeArea;
36+
37+ void OnMouseExited (const ui::MouseEvent& event) override {
38+ ResizeArea::OnMouseExited (event);
39+ GetWidget ()->SetCursor (ui::Cursor ());
40+ }
41+ };
42+
43+ BEGIN_METADATA (CustomResizeArea)
44+ END_METADATA
45+
46+ } // namespace
47+ #endif
48+
2149SidePanelResizeWidget::SidePanelResizeWidget (
2250 BraveSidePanel* panel,
2351 BraveBrowserView* browser_view,
@@ -38,8 +66,13 @@ SidePanelResizeWidget::SidePanelResizeWidget(
3866 params.activatable = views::Widget::InitParams::Activatable::kNo ;
3967 widget_->Init (std::move (params));
4068
41- auto resize_area = std::make_unique<views::ResizeArea>(resize_area_delegate);
42- widget_->SetContentsView (std::move (resize_area));
69+ #if BUILDFLAG(IS_MAC)
70+ widget_->SetContentsView (
71+ std::make_unique<CustomResizeArea>(resize_area_delegate));
72+ #else
73+ widget_->SetContentsView (
74+ std::make_unique<views::ResizeArea>(resize_area_delegate));
75+ #endif
4376
4477#if defined(USE_AURA)
4578 widget_->GetNativeView ()->SetProperty (views::kHostViewKey ,
0 commit comments