views: mac: Support dynamic resize of title bar height (see #3189)

This is intended for usage with frameless windows that show the standard window
buttons, where resizing the title bar height changes the button offset. Returning a
different value from CefWindowDelegate::GetTitlebarHeight and forcing a resize of
the NSWindow's theme frame (see ViewsWindow::NudgeWindow) will update the
title bar height.

To test:
1. Run `cefclient --use-views --hide-frame --show-window-buttons --url=http://tests/window`
2. Enter a new value for title bar height and click the "Set Titlebar Height" button
This commit is contained in:
Nik Pavlov
2023-03-16 17:19:50 +00:00
committed by Marshall Greenblatt
parent 0a2c7a1070
commit c83b3cda24
19 changed files with 156 additions and 62 deletions

View File

@@ -9,7 +9,6 @@
#include "include/views/cef_view.h"
#include "include/views/cef_window.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/gfx/native_widget_types.h"
#include "ui/views/view.h"
@@ -29,6 +28,8 @@ class NativeWidgetDelegate;
}
} // namespace views
class CefWindowDelegate;
#define CEF_REQUIRE_VALID_RETURN(ret) \
if (!ParentClass::IsValid()) \
return ret;
@@ -148,9 +149,8 @@ CefWindowHandle GetWindowHandle(gfx::NativeWindow window);
views::NativeWidget* CreateNativeWidget(
views::internal::NativeWidgetDelegate* delegate,
bool is_frameless,
bool with_window_buttons,
absl::optional<float> title_bar_height);
CefRefPtr<CefWindow> window,
CefWindowDelegate* window_delegate);
} // namespace view_util