gtk: Make BrowserWindow::HasModalDialog work.
authorCheng Zhao <zcbenz@gmail.com>
Tue, 24 Jun 2014 13:52:06 +0000 (21:52 +0800)
committerCheng Zhao <zcbenz@gmail.com>
Tue, 24 Jun 2014 13:52:06 +0000 (21:52 +0800)
Fixes atom/atom#2658.

atom/browser/ui/file_dialog_gtk.cc
atom/browser/ui/message_box_gtk.cc

index 9b813e7..618ec31 100644 (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);
 };
 
index 792ef4d..4915d09 100644 (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_;