diff options
Diffstat (limited to 'chrome/browser/ui/browser.cc')
-rw-r--r-- | chrome/browser/ui/browser.cc | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc index 2c75f98..a608b8e 100644 --- a/chrome/browser/ui/browser.cc +++ b/chrome/browser/ui/browser.cc @@ -1145,8 +1145,23 @@ void Browser::CloseTabContents(TabContents* contents) { } gfx::NativeWindow Browser::BrowserShowHtmlDialog( - HtmlDialogUIDelegate* delegate, gfx::NativeWindow parent_window) { - return window_->ShowHTMLDialog(delegate, parent_window); + HtmlDialogUIDelegate* delegate, + gfx::NativeWindow parent_window) { +#if defined(OS_CHROMEOS) + // For Chrome OS, first try to parent the dialog over the current browser -- + // it's likely to be maximized onscreen. If it isn't tabbed (e.g. it's a + // panel), find a browser that is. + parent_window = window_->GetNativeHandle(); + if (!is_type_tabbed()) { + Browser* tabbed_browser = BrowserList::FindTabbedBrowser(profile_, true); + if (tabbed_browser && tabbed_browser->window()) + parent_window = tabbed_browser->window()->GetNativeHandle(); + } +#endif // defined(OS_CHROMEOS) + if (!parent_window) + parent_window = window_->GetNativeHandle(); + + return browser::ShowHtmlDialog(parent_window, profile_, delegate); } void Browser::BrowserRenderWidgetShowing() { |