gtk: Make BrowserWindow::HasModalDialog work.

Fixes atom/atom#2658.
This commit is contained in:
Cheng Zhao 2014-06-24 21:52:06 +08:00
parent 27d73b362a
commit 32c881bde9
2 changed files with 8 additions and 2 deletions

View file

@ -19,7 +19,8 @@ class FileChooserDialog {
FileChooserDialog(GtkFileChooserAction action,
atom::NativeWindow* parent_window,
const std::string& title,
const base::FilePath& default_path) {
const base::FilePath& default_path)
: dialog_scope_(new atom::NativeWindow::DialogScope(parent_window)) {
const char* confirm_text = GTK_STOCK_OK;
if (action == GTK_FILE_CHOOSER_ACTION_SAVE)
confirm_text = GTK_STOCK_SAVE;
@ -109,6 +110,8 @@ class FileChooserDialog {
SaveDialogCallback save_callback_;
OpenDialogCallback open_callback_;
scoped_ptr<atom::NativeWindow::DialogScope> dialog_scope_;
DISALLOW_COPY_AND_ASSIGN(FileChooserDialog);
};

View file

@ -22,7 +22,8 @@ class MessageBox {
const std::string& title,
const std::string& message,
const std::string& detail)
: cancel_id_(0) {
: cancel_id_(0),
dialog_scope_(new NativeWindow::DialogScope(parent_window)) {
GtkWindow* window = parent_window ? parent_window->GetNativeWindow() : NULL;
dialog_ = gtk_dialog_new_with_buttons(
title.c_str(),
@ -84,6 +85,8 @@ class MessageBox {
GtkWidget* dialog_;
MessageBoxCallback callback_;
scoped_ptr<NativeWindow::DialogScope> dialog_scope_;
// The id to return when the dialog is closed without pressing buttons.
int cancel_id_;