diff options
author | oshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-26 20:11:00 +0000 |
---|---|---|
committer | oshima@google.com <oshima@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-08-26 20:11:00 +0000 |
commit | de09c7d0478d7a82785aa5080a9499ee8b36b1d8 (patch) | |
tree | e4260639c8cb89b71b49c075caf47e26fee09195 /views/widget/widget.cc | |
parent | f283925f7c607667e68f033c308964cb876a47d1 (diff) | |
download | chromium_src-de09c7d0478d7a82785aa5080a9499ee8b36b1d8.zip chromium_src-de09c7d0478d7a82785aa5080a9499ee8b36b1d8.tar.gz chromium_src-de09c7d0478d7a82785aa5080a9499ee8b36b1d8.tar.bz2 |
Don't activate POPUP window
Clicking keyboard (and any popup like menu) was activating the widget, which
hides VirtualKeyboard as it was stealing focus from browser window.
This also moves the code that handles window activation to WindowManaer.
Removed desktop_window_root_view.cc|h as it's no longer necesssary.
BUG=none
TEST=VirtualKeyboard on views desktop should work.
Review URL: http://codereview.chromium.org/7740039
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@98472 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'views/widget/widget.cc')
-rw-r--r-- | views/widget/widget.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/views/widget/widget.cc b/views/widget/widget.cc index 8340199..80ca73d 100644 --- a/views/widget/widget.cc +++ b/views/widget/widget.cc @@ -66,7 +66,10 @@ class ScopedEvent { // WidgetDelegate is supplied. class DefaultWidgetDelegate : public WidgetDelegate { public: - explicit DefaultWidgetDelegate(Widget* widget) : widget_(widget) {} + DefaultWidgetDelegate(Widget* widget, const Widget::InitParams& params) + : widget_(widget), + can_activate_(params.type != Widget::InitParams::TYPE_POPUP) { + } virtual ~DefaultWidgetDelegate() {} // Overridden from WidgetDelegate: @@ -80,8 +83,13 @@ class DefaultWidgetDelegate : public WidgetDelegate { return widget_; } + virtual bool CanActivate() const { + return can_activate_; + } + private: Widget* widget_; + bool can_activate_; DISALLOW_COPY_AND_ASSIGN(DefaultWidgetDelegate); }; @@ -282,8 +290,8 @@ void Widget::Init(const InitParams& params) { (!params.child && params.type != InitParams::TYPE_CONTROL && params.type != InitParams::TYPE_TOOLTIP); - widget_delegate_ = - params.delegate ? params.delegate : new DefaultWidgetDelegate(this); + widget_delegate_ = params.delegate ? + params.delegate : new DefaultWidgetDelegate(this, params); ownership_ = params.ownership; native_widget_ = params.native_widget ? params.native_widget->AsNativeWidgetPrivate() : |