diff options
Diffstat (limited to 'chromium/ui/shell_dialogs/select_file_dialog_mac.mm')
-rw-r--r-- | chromium/ui/shell_dialogs/select_file_dialog_mac.mm | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/chromium/ui/shell_dialogs/select_file_dialog_mac.mm b/chromium/ui/shell_dialogs/select_file_dialog_mac.mm index 29329c65f98..4851a771f93 100644 --- a/chromium/ui/shell_dialogs/select_file_dialog_mac.mm +++ b/chromium/ui/shell_dialogs/select_file_dialog_mac.mm @@ -19,6 +19,7 @@ #include "base/strings/utf_string_conversions.h" #include "base/threading/thread_restrictions.h" #import "ui/base/cocoa/nib_loading.h" +#include "ui/base/cocoa/remote_views_window.h" #include "ui/base/l10n/l10n_util_mac.h" #include "ui/shell_dialogs/select_file_policy.h" #include "ui/strings/grit/ui_strings.h" @@ -147,6 +148,14 @@ void SelectFileDialogImpl::SelectFileImpl( type == SELECT_EXISTING_FOLDER || type == SELECT_OPEN_FILE || type == SELECT_OPEN_MULTI_FILE || type == SELECT_SAVEAS_FILE); NSWindow* owning_window = owning_native_window.GetNativeNSWindow(); + // TODO(https://crbug.com/913303): The select file dialog's interface to + // Cocoa should be wrapped in a mojo interface in order to allow instantiating + // across processes. As a temporary solution, raise the remote windows' + // transparent in-process window to the front. + if (ui::IsWindowUsingRemoteViews(owning_window)) { + [owning_window makeKeyAndOrderFront:nil]; + [owning_window setLevel:NSModalPanelWindowLevel]; + } parents_.insert(owning_window); // Note: we need to retain the dialog as owning_window can be null. |