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

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

Issue 16374006: Place browser-modal dialogs like web-contents-modal dialogs. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixes and cleanup. Created 7 years, 6 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 198b5e6e6b490658cc6e48ccbc05232628d2ab34..52220f6e09e007331d8fdcb7b5c150c1e2539512 100644
--- a/chrome/browser/ui/views/constrained_window_views.cc
+++ b/chrome/browser/ui/views/constrained_window_views.cc
@@ -12,6 +12,7 @@
#include "chrome/browser/platform_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/themes/theme_properties.h"
+#include "chrome/browser/ui/browser_finder.h"
#include "chrome/browser/ui/toolbar/toolbar_model.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/theme_image_mapper.h"
@@ -126,6 +127,11 @@ class WebContentsModalDialogHostObserverViews
// top of the dialog.
position.set_y(position.y() - border->GetInsets().top());
}
+
+ if (target_widget_->is_top_level())
+ position += views::Widget::GetWidgetForNativeView(host_->GetHostView())->
+ GetClientAreaBoundsInScreen().OffsetFromOrigin();
+
target_widget_->SetBounds(gfx::Rect(position, size));
}
@@ -680,6 +686,27 @@ views::Widget* CreateWebContentsModalDialogViews(
return dialog;
}
+views::Widget* CreateBrowserModalDialogViews(views::DialogDelegate* dialog,
+ gfx::NativeWindow parent) {
+ views::Widget* widget =
+ views::DialogDelegate::CreateDialogWidget(dialog, NULL, parent);
+ if (!dialog->UseNewStyleForThisDialog())
+ return widget;
+
+ // Get the browser dialog management and hosting components from |parent|.
+ Browser* browser = chrome::FindBrowserWithWindow(parent);
+ if (browser) {
Mike Wittman 2013/06/07 02:38:03 How about DCHECK(browser)? Wouldn't invoking this
msw 2013/06/07 17:51:13 I'm not so sure, take a look at the parent wrangli
+ ChromeWebModalDialogManagerDelegate* manager = browser;
+ WebContentsModalDialogHost* host = manager->GetWebContentsModalDialogHost();
+ DCHECK_EQ(parent, host->GetHostView());
+ WebContentsModalDialogHostObserver* dialog_host_observer =
+ new WebContentsModalDialogHostObserverViews(
+ host, widget, kWebContentsModalDialogHostObserverViewsKey);
+ dialog_host_observer->OnPositionRequiresUpdate();
+ }
+ return widget;
+}
+
views::NonClientFrameView* CreateConstrainedStyleNonClientFrameView(
views::Widget* widget,
content::BrowserContext* browser_context) {
« no previous file with comments | « chrome/browser/ui/views/constrained_window_views.h ('k') | chrome/browser/ui/views/create_application_shortcut_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698