| 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 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 192 SetState(STATE_PRESSED); | 192 SetState(STATE_PRESSED); |
| 193 | 193 |
| 194 menu_showing_ = true; | 194 menu_showing_ = true; |
| 195 | 195 |
| 196 // Create and run menu. Display an empty menu if model is NULL. | 196 // Create and run menu. Display an empty menu if model is NULL. |
| 197 if (model_.get()) { | 197 if (model_.get()) { |
| 198 views::MenuModelAdapter menu_delegate(model_.get()); | 198 views::MenuModelAdapter menu_delegate(model_.get()); |
| 199 menu_delegate.set_triggerable_event_flags(triggerable_event_flags()); | 199 menu_delegate.set_triggerable_event_flags(triggerable_event_flags()); |
| 200 menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu())); | 200 menu_runner_.reset(new views::MenuRunner(menu_delegate.CreateMenu())); |
| 201 views::MenuRunner::RunResult result = | 201 views::MenuRunner::RunResult result = |
| 202 menu_runner_->RunMenuAt(GetWidget(), NULL, | 202 menu_runner_->RunMenuAt(GetWidget(), |
| 203 NULL, |
| 203 gfx::Rect(menu_position, gfx::Size(0, 0)), | 204 gfx::Rect(menu_position, gfx::Size(0, 0)), |
| 204 views::MenuItemView::TOPLEFT, | 205 ui::MENU_ANCHOR_TOPLEFT, |
| 205 source_type, | 206 source_type, |
| 206 views::MenuRunner::HAS_MNEMONICS); | 207 views::MenuRunner::HAS_MNEMONICS); |
| 207 if (result == views::MenuRunner::MENU_DELETED) | 208 if (result == views::MenuRunner::MENU_DELETED) |
| 208 return; | 209 return; |
| 209 } else { | 210 } else { |
| 210 views::MenuDelegate menu_delegate; | 211 views::MenuDelegate menu_delegate; |
| 211 views::MenuItemView* menu = new views::MenuItemView(&menu_delegate); | 212 views::MenuItemView* menu = new views::MenuItemView(&menu_delegate); |
| 212 menu_runner_.reset(new views::MenuRunner(menu)); | 213 menu_runner_.reset(new views::MenuRunner(menu)); |
| 213 views::MenuRunner::RunResult result = | 214 views::MenuRunner::RunResult result = |
| 214 menu_runner_->RunMenuAt(GetWidget(), NULL, | 215 menu_runner_->RunMenuAt(GetWidget(), |
| 216 NULL, |
| 215 gfx::Rect(menu_position, gfx::Size(0, 0)), | 217 gfx::Rect(menu_position, gfx::Size(0, 0)), |
| 216 views::MenuItemView::TOPLEFT, | 218 ui::MENU_ANCHOR_TOPLEFT, |
| 217 source_type, | 219 source_type, |
| 218 views::MenuRunner::HAS_MNEMONICS); | 220 views::MenuRunner::HAS_MNEMONICS); |
| 219 if (result == views::MenuRunner::MENU_DELETED) | 221 if (result == views::MenuRunner::MENU_DELETED) |
| 220 return; | 222 return; |
| 221 } | 223 } |
| 222 | 224 |
| 223 menu_showing_ = false; | 225 menu_showing_ = false; |
| 224 | 226 |
| 225 // Need to explicitly clear mouse handler so that events get sent | 227 // Need to explicitly clear mouse handler so that events get sent |
| 226 // properly after the menu finishes running. If we don't do this, then | 228 // properly after the menu finishes running. If we don't do this, then |
| 227 // the first click to other parts of the UI is eaten. | 229 // the first click to other parts of the UI is eaten. |
| 228 SetMouseHandler(NULL); | 230 SetMouseHandler(NULL); |
| 229 | 231 |
| 230 // Set the state back to normal after the drop down menu is closed. | 232 // Set the state back to normal after the drop down menu is closed. |
| 231 if (state_ != STATE_DISABLED) | 233 if (state_ != STATE_DISABLED) |
| 232 SetState(STATE_NORMAL); | 234 SetState(STATE_NORMAL); |
| 233 } | 235 } |
| OLD | NEW |