summaryrefslogtreecommitdiffstats
path: root/chrome/browser/gtk/dialogs_gtk.cc
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-15 04:19:01 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-15 04:19:01 +0000
commit5a67535997a41c9ad61bc39f33b46cfd572d73a9 (patch)
treef374c4833e7c1abb20248c0f995ff710c1699799 /chrome/browser/gtk/dialogs_gtk.cc
parentf0f67972c9323e066bdf9d0ca47e3553dbd54843 (diff)
downloadchromium_src-5a67535997a41c9ad61bc39f33b46cfd572d73a9.zip
chromium_src-5a67535997a41c9ad61bc39f33b46cfd572d73a9.tar.gz
chromium_src-5a67535997a41c9ad61bc39f33b46cfd572d73a9.tar.bz2
Revert r20667, which broke dropdown menus.
TBR=evan Review URL: http://codereview.chromium.org/155557 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@20717 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/gtk/dialogs_gtk.cc')
-rw-r--r--chrome/browser/gtk/dialogs_gtk.cc14
1 files changed, 6 insertions, 8 deletions
diff --git a/chrome/browser/gtk/dialogs_gtk.cc b/chrome/browser/gtk/dialogs_gtk.cc
index 3a32526..62de9ce6 100644
--- a/chrome/browser/gtk/dialogs_gtk.cc
+++ b/chrome/browser/gtk/dialogs_gtk.cc
@@ -27,7 +27,11 @@ static const int kPreviewHeight = 512;
// Implementation of SelectFileDialog that shows a Gtk common dialog for
// choosing a file or folder.
-// This acts as a modal dialog.
+// This acts as a modal dialog. Ideally we want to only act modally for the
+// parent window and allow other toplevel chrome windows to still function while
+// the dialog is showing, but we need the GtkWindowGroup or something similar to
+// get that, and that API is only available in more recent versions of GTK.
+// TODO(port): fix modality: crbug.com/8727
class SelectFileDialogImpl : public SelectFileDialog {
public:
explicit SelectFileDialogImpl(Listener* listener);
@@ -204,13 +208,7 @@ void SelectFileDialogImpl::SelectFile(
gtk_file_chooser_set_preview_widget(GTK_FILE_CHOOSER(dialog), preview_);
params_map_[dialog] = params;
-
- // Set window-to-parent modality by adding the dialog to the same window
- // group as the parent, and calling gtk_grab_add(...)
- gtk_window_group_add_window(gtk_window_get_group(owning_window),
- GTK_WINDOW(dialog));
- gtk_grab_add(dialog);
-
+ gtk_window_set_modal(GTK_WINDOW(dialog), TRUE);
gtk_widget_show_all(dialog);
}