summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-21 20:29:27 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-21 20:29:27 +0000
commit883bdd89eea4cfbbd87342ba9212de8cccb6bdab (patch)
tree3c2833b03e37f2ce211aa0d73c85ef37a0209dbe
parent2c4147f58b41e4a0c4d4f1ee2c8ca324bd469a74 (diff)
downloadchromium_src-883bdd89eea4cfbbd87342ba9212de8cccb6bdab.zip
chromium_src-883bdd89eea4cfbbd87342ba9212de8cccb6bdab.tar.gz
chromium_src-883bdd89eea4cfbbd87342ba9212de8cccb6bdab.tar.bz2
Make all options dialogs have a parent
Use last active browser window as options dialogs parent because window manager only repsect top-level window as parent for now. That is, we could not use options dialog as its sub dialoags' parent. BUG=none TEST=Verify all sub dialogs from options are not treated as toplevel window (ie they do not occupy the fulll screen). Review URL: http://codereview.chromium.org/1751003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45232 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/chromeos/frame/browser_view.cc3
-rw-r--r--chrome/browser/chromeos/options/internet_page_view.cc5
-rw-r--r--chrome/browser/chromeos/options/language_config_view.cc9
-rw-r--r--chrome/browser/chromeos/options/language_config_view.h2
-rw-r--r--chrome/browser/chromeos/options/system_page_view.cc3
5 files changed, 12 insertions, 10 deletions
diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc
index 63804a0..eb2029c 100644
--- a/chrome/browser/chromeos/frame/browser_view.cc
+++ b/chrome/browser/chromeos/frame/browser_view.cc
@@ -486,7 +486,8 @@ void BrowserView::OpenButtonOptions(const views::View* button_view) const {
if (button_view == status_area_->network_view()) {
browser()->OpenInternetOptionsDialog();
} else if (button_view == status_area_->language_view()) {
- LanguageConfigView::Show(GetProfile());
+ LanguageConfigView::Show(GetProfile(),
+ frame()->GetWindow()->GetNativeWindow());
} else {
browser()->OpenSystemOptionsDialog();
}
diff --git a/chrome/browser/chromeos/options/internet_page_view.cc b/chrome/browser/chromeos/options/internet_page_view.cc
index 25b957d..a34bb19 100644
--- a/chrome/browser/chromeos/options/internet_page_view.cc
+++ b/chrome/browser/chromeos/options/internet_page_view.cc
@@ -9,6 +9,7 @@
#include "app/combobox_model.h"
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/options/network_config_view.h"
+#include "chrome/browser/chromeos/options/options_window_view.h"
#include "chrome/browser/chromeos/status/network_menu_button.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
@@ -202,10 +203,8 @@ void NetworkSection::AddNetwork(int id, const SkBitmap& icon,
}
void NetworkSection::CreateModalPopup(views::WindowDelegate* view) {
- GtkWidget* widget = gtk_widget_get_ancestor(
- parent_->GetWidget()->GetNativeView(), GTK_TYPE_WINDOW);
views::Window* window = views::Window::CreateChromeWindow(
- widget ? GTK_WINDOW(widget) : NULL, gfx::Rect(), view);
+ GetOptionsViewParent(), gfx::Rect(), view);
window->SetIsAlwaysOnTop(true);
window->Show();
}
diff --git a/chrome/browser/chromeos/options/language_config_view.cc b/chrome/browser/chromeos/options/language_config_view.cc
index 83fcd09..4944312 100644
--- a/chrome/browser/chromeos/options/language_config_view.cc
+++ b/chrome/browser/chromeos/options/language_config_view.cc
@@ -14,6 +14,7 @@
#include "chrome/browser/chromeos/cros/cros_library.h"
#include "chrome/browser/chromeos/cros/language_library.h"
#include "chrome/browser/chromeos/options/language_hangul_config_view.h"
+#include "chrome/browser/chromeos/options/options_window_view.h"
#include "chrome/browser/chromeos/preferences.h"
#include "chrome/browser/language_combobox_model.h"
#include "chrome/browser/pref_service.h"
@@ -247,7 +248,7 @@ void LanguageConfigView::ButtonPressed(
views::Button* sender, const views::Event& event) {
if (sender->tag() == kAddLanguageButton) {
views::Window* window = views::Window::CreateChromeWindow(
- NULL, gfx::Rect(), new AddLanguageView(this));
+ GetOptionsViewParent(), gfx::Rect(), new AddLanguageView(this));
window->SetIsAlwaysOnTop(true);
window->Show();
} else if (sender->tag() == kRemoveLanguageButton) {
@@ -278,7 +279,7 @@ void LanguageConfigView::ButtonPressed(
return;
}
views::Window* window = views::Window::CreateChromeWindow(
- NULL, gfx::Rect(), config_view);
+ GetOptionsViewParent(), gfx::Rect(), config_view);
window->SetIsAlwaysOnTop(true);
window->Show();
} else if (sender->tag() == kChangeUiLanguageButton) {
@@ -487,9 +488,9 @@ std::wstring LanguageConfigView::GetText(int row, int column_id) {
return L"";
}
-void LanguageConfigView::Show(Profile* profile) {
+void LanguageConfigView::Show(Profile* profile, gfx::NativeWindow parent) {
views::Window* window = views::Window::CreateChromeWindow(
- NULL, gfx::Rect(), new LanguageConfigView(profile));
+ parent, gfx::Rect(), new LanguageConfigView(profile));
window->SetIsAlwaysOnTop(true);
window->Show();
}
diff --git a/chrome/browser/chromeos/options/language_config_view.h b/chrome/browser/chromeos/options/language_config_view.h
index d558dfa..3f79ffb 100644
--- a/chrome/browser/chromeos/options/language_config_view.h
+++ b/chrome/browser/chromeos/options/language_config_view.h
@@ -90,7 +90,7 @@ class LanguageConfigView : public TableModel,
const std::wstring& language_name);
// Shows the language config dialog in a new window.
- static void Show(Profile* profile);
+ static void Show(Profile* profile, gfx::NativeWindow parent);
private:
// Initializes the input method config view.
diff --git a/chrome/browser/chromeos/options/system_page_view.cc b/chrome/browser/chromeos/options/system_page_view.cc
index ba285b3..52f6872 100644
--- a/chrome/browser/chromeos/options/system_page_view.cc
+++ b/chrome/browser/chromeos/options/system_page_view.cc
@@ -11,6 +11,7 @@
#include "base/stl_util-inl.h"
#include "base/utf_string_conversions.h"
#include "chrome/browser/chromeos/options/language_config_view.h"
+#include "chrome/browser/chromeos/options/options_window_view.h"
#include "chrome/browser/pref_member.h"
#include "chrome/browser/profile.h"
#include "chrome/common/pref_names.h"
@@ -392,7 +393,7 @@ void LanguageSection::InitContents(GridLayout* layout) {
void LanguageSection::ButtonPressed(
views::Button* sender, const views::Event& event) {
if (sender->tag() == kCustomizeLanguagesButton) {
- LanguageConfigView::Show(profile());
+ LanguageConfigView::Show(profile(), GetOptionsViewParent());
}
}