OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/views/toolbar/toolbar_action_view.h" | 5 #include "chrome/browser/ui/views/toolbar/toolbar_action_view.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/auto_reset.h" | 9 #include "base/auto_reset.h" |
10 #include "chrome/browser/chrome_notification_types.h" | 10 #include "chrome/browser/chrome_notification_types.h" |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
101 SetFocusable(true); | 101 SetFocusable(true); |
102 } | 102 } |
103 | 103 |
104 UpdateState(); | 104 UpdateState(); |
105 } | 105 } |
106 | 106 |
107 ToolbarActionView::~ToolbarActionView() { | 107 ToolbarActionView::~ToolbarActionView() { |
108 if (context_menu_owner == this) | 108 if (context_menu_owner == this) |
109 context_menu_owner = nullptr; | 109 context_menu_owner = nullptr; |
110 view_controller_->SetDelegate(nullptr); | 110 view_controller_->SetDelegate(nullptr); |
| 111 set_ink_drop_delegate(nullptr); |
111 ink_drop_delegate_.reset(); | 112 ink_drop_delegate_.reset(); |
112 set_ink_drop_delegate(nullptr); | |
113 } | 113 } |
114 | 114 |
115 void ToolbarActionView::GetAccessibleState(ui::AXViewState* state) { | 115 void ToolbarActionView::GetAccessibleState(ui::AXViewState* state) { |
116 views::MenuButton::GetAccessibleState(state); | 116 views::MenuButton::GetAccessibleState(state); |
117 state->role = ui::AX_ROLE_BUTTON; | 117 state->role = ui::AX_ROLE_BUTTON; |
118 } | 118 } |
119 | 119 |
120 scoped_ptr<LabelButtonBorder> ToolbarActionView::CreateDefaultBorder() const { | 120 scoped_ptr<LabelButtonBorder> ToolbarActionView::CreateDefaultBorder() const { |
121 scoped_ptr<LabelButtonBorder> border = LabelButton::CreateDefaultBorder(); | 121 scoped_ptr<LabelButtonBorder> border = LabelButton::CreateDefaultBorder(); |
122 border->set_insets(gfx::Insets(kBorderInset, kBorderInset, | 122 border->set_insets(gfx::Insets(kBorderInset, kBorderInset, |
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 context_menu_callback = callback; | 219 context_menu_callback = callback; |
220 } | 220 } |
221 | 221 |
222 gfx::Size ToolbarActionView::GetPreferredSize() const { | 222 gfx::Size ToolbarActionView::GetPreferredSize() const { |
223 return gfx::Size(ToolbarActionsBar::IconWidth(false), | 223 return gfx::Size(ToolbarActionsBar::IconWidth(false), |
224 ToolbarActionsBar::IconHeight()); | 224 ToolbarActionsBar::IconHeight()); |
225 } | 225 } |
226 | 226 |
227 bool ToolbarActionView::OnMousePressed(const ui::MouseEvent& event) { | 227 bool ToolbarActionView::OnMousePressed(const ui::MouseEvent& event) { |
228 // views::MenuButton actions are only triggered by left mouse clicks. | 228 // views::MenuButton actions are only triggered by left mouse clicks. |
229 if (event.IsOnlyLeftMouseButton()) | 229 if (event.IsOnlyLeftMouseButton()) { |
| 230 // TODO(bruthig): The ACTION_PENDING triggering logic should be in |
| 231 // MenuButton::OnPressed() however there is a bug with the pressed state |
| 232 // logic in MenuButton. See http://crbug.com/567252. |
230 ink_drop_delegate()->OnAction(views::InkDropState::ACTION_PENDING); | 233 ink_drop_delegate()->OnAction(views::InkDropState::ACTION_PENDING); |
| 234 } |
231 return MenuButton::OnMousePressed(event); | 235 return MenuButton::OnMousePressed(event); |
232 } | 236 } |
233 | 237 |
234 void ToolbarActionView::OnGestureEvent(ui::GestureEvent* event) { | 238 void ToolbarActionView::OnGestureEvent(ui::GestureEvent* event) { |
235 // While the dropdown menu is showing, the button should not handle gestures. | 239 // While the dropdown menu is showing, the button should not handle gestures. |
236 if (menu_) | 240 if (menu_) |
237 event->StopPropagation(); | 241 event->StopPropagation(); |
238 else | 242 else |
239 MenuButton::OnGestureEvent(event); | 243 MenuButton::OnGestureEvent(event); |
240 } | 244 } |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
386 if (menu_controller->in_nested_run()) { | 390 if (menu_controller->in_nested_run()) { |
387 // There is another menu showing. Close the outermost menu (since we are | 391 // There is another menu showing. Close the outermost menu (since we are |
388 // shown in the same menu, we don't want to close the whole thing). | 392 // shown in the same menu, we don't want to close the whole thing). |
389 menu_controller->Cancel(views::MenuController::EXIT_OUTERMOST); | 393 menu_controller->Cancel(views::MenuController::EXIT_OUTERMOST); |
390 return true; | 394 return true; |
391 } | 395 } |
392 } | 396 } |
393 | 397 |
394 return false; | 398 return false; |
395 } | 399 } |
OLD | NEW |