| Index: ui/views/widget/widget.cc
|
| diff --git a/ui/views/widget/widget.cc b/ui/views/widget/widget.cc
|
| index d1f92e7f8a5911b6f7cd3e3e24bc6ac093567a57..f686730863f8e98f0b6210d379e4c0f473d26db6 100644
|
| --- a/ui/views/widget/widget.cc
|
| +++ b/ui/views/widget/widget.cc
|
| @@ -69,9 +69,11 @@ NativeWidget* CreateNativeWidget(NativeWidget* native_widget,
|
| // WidgetDelegate is supplied.
|
| class DefaultWidgetDelegate : public WidgetDelegate {
|
| public:
|
| - DefaultWidgetDelegate(Widget* widget, bool can_activate)
|
| + DefaultWidgetDelegate(Widget* widget, const Widget::InitParams& params)
|
| : widget_(widget),
|
| - can_activate_(can_activate) {
|
| + can_activate_(!params.child &&
|
| + params.type != Widget::InitParams::TYPE_POPUP &&
|
| + params.type != Widget::InitParams::TYPE_DRAG) {
|
| }
|
| virtual ~DefaultWidgetDelegate() {}
|
|
|
| @@ -111,7 +113,7 @@ Widget::InitParams::InitParams()
|
| child(false),
|
| opacity(INFER_OPACITY),
|
| accept_events(true),
|
| - activatable(ACTIVATABLE_DEFAULT),
|
| + can_activate(true),
|
| keep_on_top(false),
|
| visible_on_all_workspaces(false),
|
| ownership(NATIVE_WIDGET_OWNS_WIDGET),
|
| @@ -136,7 +138,8 @@ Widget::InitParams::InitParams(Type type)
|
| child(type == TYPE_CONTROL),
|
| opacity(INFER_OPACITY),
|
| accept_events(true),
|
| - activatable(ACTIVATABLE_DEFAULT),
|
| + can_activate(type != TYPE_POPUP && type != TYPE_MENU &&
|
| + type != TYPE_DRAG),
|
| keep_on_top(type == TYPE_MENU || type == TYPE_DRAG),
|
| visible_on_all_workspaces(false),
|
| ownership(NATIVE_WIDGET_OWNS_WIDGET),
|
| @@ -344,20 +347,6 @@ void Widget::Init(const InitParams& in_params) {
|
| params.type != InitParams::TYPE_TOOLTIP);
|
| params.top_level = is_top_level_;
|
|
|
| - if (params.activatable != InitParams::ACTIVATABLE_DEFAULT) {
|
| - can_activate_ = (params.activatable == InitParams::ACTIVATABLE_YES);
|
| - } else if (params.type != InitParams::TYPE_CONTROL &&
|
| - params.type != InitParams::TYPE_POPUP &&
|
| - params.type != InitParams::TYPE_MENU &&
|
| - params.type != InitParams::TYPE_TOOLTIP &&
|
| - params.type != InitParams::TYPE_DRAG) {
|
| - can_activate_ = true;
|
| - params.activatable = InitParams::ACTIVATABLE_YES;
|
| - } else {
|
| - can_activate_ = false;
|
| - params.activatable = InitParams::ACTIVATABLE_NO;
|
| - }
|
| -
|
| if (params.opacity == views::Widget::InitParams::INFER_OPACITY &&
|
| params.type != views::Widget::InitParams::TYPE_WINDOW &&
|
| params.type != views::Widget::InitParams::TYPE_PANEL)
|
| @@ -370,7 +359,7 @@ void Widget::Init(const InitParams& in_params) {
|
| params.opacity = views::Widget::InitParams::OPAQUE_WINDOW;
|
|
|
| widget_delegate_ = params.delegate ?
|
| - params.delegate : new DefaultWidgetDelegate(this, can_activate_);
|
| + params.delegate : new DefaultWidgetDelegate(this, params);
|
| ownership_ = params.ownership;
|
| native_widget_ = CreateNativeWidget(params.native_widget, this)->
|
| AsNativeWidgetPrivate();
|
| @@ -1019,7 +1008,7 @@ bool Widget::IsDialogBox() const {
|
| }
|
|
|
| bool Widget::CanActivate() const {
|
| - return can_activate_ && widget_delegate_->CanActivate();
|
| + return widget_delegate_->CanActivate();
|
| }
|
|
|
| bool Widget::IsInactiveRenderingDisabled() const {
|
|
|