Support JavaScript window.moveTo/By() and resizeTo/By() (fixes #698)

Adds new CefDisplayHandler::OnContentsBoundsChange and
CefDisplayHandler::GetRootWindowScreenRect callbacks.

cefclient: Implement the above callbacks and call
CefBrowserHost::NotifyScreenInfoChanged when the root window
bounds change.

cefclient: osr: Use real screen bounds by default. Pass
`--fake-screen-bounds` for the old default behavior.

Load https://tests/window in cefclient for additional
implementation details and usage examples.
This commit is contained in:
Marshall Greenblatt
2025-04-23 20:33:07 -04:00
parent f59112d839
commit faa85bf980
68 changed files with 1725 additions and 700 deletions

View File

@@ -83,6 +83,16 @@ void BrowserWindow::OnAutoResize(const CefSize& new_size) {
delegate_->OnAutoResize(new_size);
}
void BrowserWindow::OnContentsBounds(const CefRect& new_bounds) {
REQUIRE_MAIN_THREAD();
delegate_->OnContentsBounds(new_bounds);
}
bool BrowserWindow::GetRootWindowScreenRect(CefRect& rect) {
CEF_REQUIRE_UI_THREAD();
return delegate_->GetRootWindowScreenRect(rect);
}
void BrowserWindow::OnSetLoadingState(bool isLoading,
bool canGoBack,
bool canGoForward) {