Index: chrome/browser/gtk/gtk_util.cc |
diff --git a/chrome/browser/gtk/gtk_util.cc b/chrome/browser/gtk/gtk_util.cc |
index c4b1ab077c9db5def8b632ca200f0d0e0b2dcb98..6e303ca343c005d28516305a98af677cfd6b6a28 100644 |
--- a/chrome/browser/gtk/gtk_util.cc |
+++ b/chrome/browser/gtk/gtk_util.cc |
@@ -925,8 +925,16 @@ bool AddWindowAlphaChannel(GtkWidget* window) { |
#if defined(OS_CHROMEOS) |
+GtkWindow* GetDialogTransientParent(GtkWindow* dialog) { |
+ GtkWindow* parent = gtk_window_get_transient_for(dialog); |
+ if (!parent) |
+ parent = chromeos::GetOptionsViewParent(); |
+ |
+ return parent; |
+} |
+ |
void ShowDialog(GtkWidget* dialog) { |
- chromeos::ShowNativeDialog(chromeos::GetOptionsViewParent(), |
+ chromeos::ShowNativeDialog(GetDialogTransientParent(GTK_WINDOW(dialog)), |
dialog, chromeos::DIALOG_FLAG_DEFAULT, gfx::Size(), gfx::Size()); |
} |
@@ -939,7 +947,7 @@ void ShowDialogWithLocalizedSize(GtkWidget* dialog, |
int height = (height_id == -1) ? 0 : |
views::Window::GetLocalizedContentsHeight(height_id); |
- chromeos::ShowNativeDialog(chromeos::GetOptionsViewParent(), |
+ chromeos::ShowNativeDialog(GetDialogTransientParent(GTK_WINDOW(dialog)), |
dialog, |
resizeable ? chromeos::DIALOG_FLAG_RESIZEABLE : |
chromeos::DIALOG_FLAG_DEFAULT, |
@@ -952,7 +960,7 @@ void ShowModalDialogWithMinLocalizedWidth(GtkWidget* dialog, |
int width = (width_id == -1) ? 0 : |
views::Window::GetLocalizedContentsWidth(width_id); |
- chromeos::ShowNativeDialog(chromeos::GetOptionsViewParent(), |
+ chromeos::ShowNativeDialog(GetDialogTransientParent(GTK_WINDOW(dialog)), |
dialog, |
chromeos::DIALOG_FLAG_MODAL, |
gfx::Size(), |
@@ -969,6 +977,10 @@ void PresentWindow(GtkWidget* window, int timestamp) { |
gtk_window_present(host_window); |
} |
+GtkWindow* GetDialogWindow(GtkWidget* dialog) { |
+ return chromeos::GetNativeDialogWindow(dialog); |
+} |
+ |
#else |
void ShowDialog(GtkWidget* dialog) { |
@@ -1007,6 +1019,10 @@ void PresentWindow(GtkWidget* window, int timestamp) { |
gtk_window_present(GTK_WINDOW(window)); |
} |
+GtkWindow* GetDialogWindow(GtkWidget* dialog) { |
+ return dialog; |
+} |
+ |
#endif |
} // namespace gtk_util |