Index: chrome/browser/printing/print_dialog_cloud.cc |
diff --git a/chrome/browser/printing/print_dialog_cloud.cc b/chrome/browser/printing/print_dialog_cloud.cc |
index ea70c51f3f923cf6b1c2ab8345ea0ef0ff539b02..a1e031ca6d8ca668dfc44a7a5a40868d29457896 100644 |
--- a/chrome/browser/printing/print_dialog_cloud.cc |
+++ b/chrome/browser/printing/print_dialog_cloud.cc |
@@ -38,6 +38,11 @@ |
#include "content/public/browser/web_contents_view.h" |
#include "content/public/browser/web_ui.h" |
#include "ui/base/l10n/l10n_util.h" |
+ |
+#if defined(OS_WIN) |
+#include "ui/base/win/foreground_helper.h" |
+#endif |
+ |
#include "webkit/glue/webpreferences.h" |
#include "grit/generated_resources.h" |
@@ -45,6 +50,7 @@ |
#if defined(USE_AURA) |
#include "chrome/browser/ui/browser_window.h" |
#include "chrome/browser/ui/views/html_dialog_view.h" |
+#include "ui/aura/root_window.h" |
#include "ui/views/widget/widget.h" |
#endif |
@@ -684,15 +690,35 @@ void CreateDialogImpl(const FilePath& path_to_file, |
callback); |
if (modal) { |
DCHECK(browser); |
+ |
#if defined(USE_AURA) |
HtmlDialogView* html_view = |
new HtmlDialogView(profile, browser, dialog_delegate); |
views::Widget::CreateWindowWithParent(html_view, |
browser->window()->GetNativeHandle()); |
html_view->InitDialog(); |
- html_view->GetWidget()->Show(); |
+ views::Widget* widget = html_view->GetWidget(); |
+ DCHECK(widget); |
+ widget->Show(); |
+#if defined(OS_WIN) |
+ gfx::NativeWindow window = widget->GetNativeWindow(); |
+#endif |
#else |
- browser->BrowserShowHtmlDialog(dialog_delegate, NULL, STYLE_GENERIC); |
+#if defined(OS_WIN) |
+ gfx::NativeWindow window = |
+#endif |
+ browser->BrowserShowHtmlDialog(dialog_delegate, NULL, STYLE_GENERIC); |
+#endif |
+#if defined(OS_WIN) |
+ HWND dialog_handle; |
+#if defined(USE_AURA) |
+ dialog_handle = window->GetRootWindow()->GetAcceleratedWidget(); |
+#else |
+ dialog_handle = window; |
+#endif |
+ if (::GetForegroundWindow() != dialog_handle) { |
+ ui::ForegroundHelper::SetForeground(dialog_handle); |
+ } |
#endif |
} else { |
browser::ShowHtmlDialog(NULL, |