mirror of
https://bitbucket.org/chromiumembedded/cef
synced 2025-06-05 21:39:12 +02:00
Add CefZoomHandler interface to support custom zoom handling (issue #733).
git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@824 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
@@ -909,8 +909,21 @@ void BrowserWebViewDelegate::didCommitProvisionalLoad(
|
||||
// Apply zoom settings only on top-level frames.
|
||||
if (is_main_frame) {
|
||||
// Restore the zoom value that we have for this URL, if any.
|
||||
GURL url = frame->document().url();
|
||||
double zoomLevel = 0.0;
|
||||
ZoomMap::GetInstance()->get(frame->document().url(), zoomLevel);
|
||||
bool didGetCustomZoom = false;
|
||||
if (client.get()) {
|
||||
CefRefPtr<CefZoomHandler> handler = client->GetZoomHandler();
|
||||
if (handler.get()) {
|
||||
double newZoomLevel = zoomLevel;
|
||||
didGetCustomZoom =
|
||||
handler->OnGetZoomLevel(browser_, url.spec(), newZoomLevel);
|
||||
if (didGetCustomZoom)
|
||||
zoomLevel = newZoomLevel;
|
||||
}
|
||||
}
|
||||
if (!didGetCustomZoom)
|
||||
ZoomMap::GetInstance()->get(url, zoomLevel);
|
||||
frame->view()->setZoomLevel(false, zoomLevel);
|
||||
browser_->set_zoom_level(zoomLevel);
|
||||
}
|
||||
|
Reference in New Issue
Block a user