| 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_button.h" | 5 #include "chrome/browser/ui/views/toolbar/toolbar_button.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" | 8 #include "chrome/browser/ui/views/location_bar/location_bar_view.h" |
| 9 #include "grit/theme_resources.h" | 9 #include "grit/theme_resources.h" |
| 10 #include "grit/ui_strings.h" | 10 #include "grit/ui_strings.h" |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 206 | 206 |
| 207 // Make the button look depressed while the menu is open. | 207 // Make the button look depressed while the menu is open. |
| 208 SetState(STATE_PRESSED); | 208 SetState(STATE_PRESSED); |
| 209 | 209 |
| 210 menu_showing_ = true; | 210 menu_showing_ = true; |
| 211 | 211 |
| 212 // Create and run menu. Display an empty menu if model is NULL. | 212 // Create and run menu. Display an empty menu if model is NULL. |
| 213 if (model_.get()) { | 213 if (model_.get()) { |
| 214 views::MenuModelAdapter menu_delegate(model_.get()); | 214 views::MenuModelAdapter menu_delegate(model_.get()); |
| 215 menu_delegate.set_triggerable_event_flags(triggerable_event_flags()); | 215 menu_delegate.set_triggerable_event_flags(triggerable_event_flags()); |
| 216 menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu())); | 216 menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu(), |
| 217 views::MenuRunner::HAS_MNEMONICS)); |
| 217 views::MenuRunner::RunResult result = | 218 views::MenuRunner::RunResult result = |
| 218 menu_runner_->RunMenuAt(GetWidget(), | 219 menu_runner_->RunMenuAt(GetWidget(), |
| 219 NULL, | 220 NULL, |
| 220 gfx::Rect(menu_position, gfx::Size(0, 0)), | 221 gfx::Rect(menu_position, gfx::Size(0, 0)), |
| 221 views::MENU_ANCHOR_TOPLEFT, | 222 views::MENU_ANCHOR_TOPLEFT, |
| 222 source_type, | 223 source_type); |
| 223 views::MenuRunner::HAS_MNEMONICS); | |
| 224 if (result == views::MenuRunner::MENU_DELETED) | 224 if (result == views::MenuRunner::MENU_DELETED) |
| 225 return; | 225 return; |
| 226 } else { | 226 } else { |
| 227 views::MenuDelegate menu_delegate; | 227 views::MenuDelegate menu_delegate; |
| 228 views::MenuItemView* menu = new views::MenuItemView(&menu_delegate); | 228 views::MenuItemView* menu = new views::MenuItemView(&menu_delegate); |
| 229 menu_runner_.reset(new views::MenuRunner(menu)); | 229 menu_runner_.reset( |
| 230 new views::MenuRunner(menu, views::MenuRunner::HAS_MNEMONICS)); |
| 230 views::MenuRunner::RunResult result = | 231 views::MenuRunner::RunResult result = |
| 231 menu_runner_->RunMenuAt(GetWidget(), | 232 menu_runner_->RunMenuAt(GetWidget(), |
| 232 NULL, | 233 NULL, |
| 233 gfx::Rect(menu_position, gfx::Size(0, 0)), | 234 gfx::Rect(menu_position, gfx::Size(0, 0)), |
| 234 views::MENU_ANCHOR_TOPLEFT, | 235 views::MENU_ANCHOR_TOPLEFT, |
| 235 source_type, | 236 source_type); |
| 236 views::MenuRunner::HAS_MNEMONICS); | |
| 237 if (result == views::MenuRunner::MENU_DELETED) | 237 if (result == views::MenuRunner::MENU_DELETED) |
| 238 return; | 238 return; |
| 239 } | 239 } |
| 240 | 240 |
| 241 menu_showing_ = false; | 241 menu_showing_ = false; |
| 242 | 242 |
| 243 // Need to explicitly clear mouse handler so that events get sent | 243 // Need to explicitly clear mouse handler so that events get sent |
| 244 // properly after the menu finishes running. If we don't do this, then | 244 // properly after the menu finishes running. If we don't do this, then |
| 245 // the first click to other parts of the UI is eaten. | 245 // the first click to other parts of the UI is eaten. |
| 246 SetMouseHandler(NULL); | 246 SetMouseHandler(NULL); |
| 247 | 247 |
| 248 // Set the state back to normal after the drop down menu is closed. | 248 // Set the state back to normal after the drop down menu is closed. |
| 249 if (state_ != STATE_DISABLED) | 249 if (state_ != STATE_DISABLED) |
| 250 SetState(STATE_NORMAL); | 250 SetState(STATE_NORMAL); |
| 251 } | 251 } |
| OLD | NEW |