Index: chrome/browser/ui/views/constrained_window_views.cc |
diff --git a/chrome/browser/ui/views/constrained_window_views.cc b/chrome/browser/ui/views/constrained_window_views.cc |
index 07ba0048700603bcc7a39b8c64cb9ee8e410a747..33e95d675bd5b9f281c79251401e63210928ed9b 100644 |
--- a/chrome/browser/ui/views/constrained_window_views.cc |
+++ b/chrome/browser/ui/views/constrained_window_views.cc |
@@ -570,11 +570,16 @@ void ConstrainedWindowFrameView::InitClass() { |
void UpdateWebContentsModalDialogPosition( |
views::Widget* widget, |
web_modal::WebContentsModalDialogHost* dialog_host) { |
- gfx::Size size = widget->GetWindowBoundsInScreen().size(); |
- gfx::Point position = dialog_host->GetDialogPosition(size); |
+ gfx::Size size = widget->non_client_view()->GetPreferredSize(); |
sky
2013/08/30 16:49:21
Can you use RootView instead of non_client_view? T
Rune Fevang
2013/08/30 21:08:52
I still need to look at the border (the root view
|
views::Border* border = |
widget->non_client_view()->frame_view()->border(); |
+ gfx::Size max_size = dialog_host->GetMaximumDialogSize(); |
// Border may be null during widget initialization. |
+ if (border) |
+ max_size.Enlarge(0, border->GetInsets().top()); |
+ size.SetToMin(max_size); |
+ |
+ gfx::Point position = dialog_host->GetDialogPosition(size); |
if (border) { |
// Align the first row of pixels inside the border. This is the apparent |
// top of the dialog. |