Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(603)

Unified Diff: chrome/browser/ui/views/constrained_window_views.cc

Issue 22903022: Limit constrained windows to the size of the parent view. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Added GetMaximumDialogSize Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..9f6df958513e7daed0f4df1a1d4624111a6d0c49 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();
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.set_height(max_size.height() + border->GetInsets().top());
+ size.SetToMin(max_size);
+
+ gfx::Point position = dialog_host->GetDialogPosition(size);
Mike Wittman 2013/08/22 17:46:10 Have you tested on other web contents modal dialog
Rune Fevang 2013/08/23 02:57:43 Yeah, works fine for all dialogs I tested on up to
if (border) {
// Align the first row of pixels inside the border. This is the apparent
// top of the dialog.

Powered by Google App Engine
This is Rietveld 408576698