feat: flexible autoresize for BrowserViews (#16184)
* feat: flexible autoresize for BrowserViews * fix: change to static_cast * Slight format code
This commit is contained in:
parent
927aac306f
commit
49ec7e1582
8 changed files with 115 additions and 25 deletions
|
@ -1176,26 +1176,6 @@ void NativeWindowViews::OnWidgetActivationChanged(views::Widget* changed_widget,
|
|||
root_view_->ResetAltState();
|
||||
}
|
||||
|
||||
void NativeWindowViews::AutoresizeBrowserView(int width_delta,
|
||||
int height_delta,
|
||||
NativeBrowserView* browser_view) {
|
||||
const auto flags =
|
||||
static_cast<NativeBrowserViewViews*>(browser_view)->GetAutoResizeFlags();
|
||||
if (!(flags & kAutoResizeWidth)) {
|
||||
width_delta = 0;
|
||||
}
|
||||
if (!(flags & kAutoResizeHeight)) {
|
||||
height_delta = 0;
|
||||
}
|
||||
if (height_delta || width_delta) {
|
||||
auto* view = browser_view->GetInspectableWebContentsView()->GetView();
|
||||
auto new_view_size = view->size();
|
||||
new_view_size.set_width(new_view_size.width() + width_delta);
|
||||
new_view_size.set_height(new_view_size.height() + height_delta);
|
||||
view->SetSize(new_view_size);
|
||||
}
|
||||
}
|
||||
|
||||
void NativeWindowViews::OnWidgetBoundsChanged(views::Widget* changed_widget,
|
||||
const gfx::Rect& bounds) {
|
||||
if (changed_widget != widget())
|
||||
|
@ -1208,7 +1188,10 @@ void NativeWindowViews::OnWidgetBoundsChanged(views::Widget* changed_widget,
|
|||
int width_delta = new_bounds.width() - widget_size_.width();
|
||||
int height_delta = new_bounds.height() - widget_size_.height();
|
||||
for (NativeBrowserView* item : browser_views()) {
|
||||
AutoresizeBrowserView(width_delta, height_delta, item);
|
||||
NativeBrowserViewViews* native_view =
|
||||
static_cast<NativeBrowserViewViews*>(item);
|
||||
native_view->SetAutoResizeProportions(widget_size_);
|
||||
native_view->AutoResize(new_bounds, width_delta, height_delta);
|
||||
}
|
||||
|
||||
NotifyWindowResize();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue