Index: ash/root_window_controller.cc |
diff --git a/ash/root_window_controller.cc b/ash/root_window_controller.cc |
index 3af8f489002c05f1b530354e6ab9b435037b7505..1aae81dd6bfde73471ed56e085012cedba6075d4 100644 |
--- a/ash/root_window_controller.cc |
+++ b/ash/root_window_controller.cc |
@@ -464,15 +464,19 @@ void RootWindowController::ShowContextMenu( |
if (!menu_model.get()) |
return; |
- views::MenuRunner menu_runner(menu_model.get()); |
- views::Widget* widget = |
- root_window_->GetProperty(kDesktopController)->widget(); |
- |
- if (menu_runner.RunMenuAt( |
- widget, NULL, gfx::Rect(location_in_screen, gfx::Size()), |
- views::MenuItemView::TOPLEFT, views::MenuRunner::CONTEXT_MENU) == |
- views::MenuRunner::MENU_DELETED) |
+ internal::DesktopBackgroundWidgetController* background = |
+ root_window_->GetProperty(kDesktopController); |
+ views::Widget* widget = background ? background->widget() : NULL; |
oshima
2013/04/03 15:14:12
when it can become null?
Dmitry Polukhin
2013/04/03 18:50:00
I wasn't able to reproduce this crash but you can
|
+ if (widget) { |
+ views::MenuRunner menu_runner(menu_model.get()); |
+ if (menu_runner.RunMenuAt( |
+ widget, NULL, gfx::Rect(location_in_screen, gfx::Size()), |
+ views::MenuItemView::TOPLEFT, views::MenuRunner::CONTEXT_MENU) == |
+ views::MenuRunner::MENU_DELETED) |
+ return; |
+ } else { |
return; |
+ } |
oshima
2013/04/03 15:14:12
if (!widget)
return;
if (menu_runner.RunMenuAt(.
Dmitry Polukhin
2013/04/03 18:50:00
Done.
|
Shell::GetInstance()->UpdateShelfVisibility(); |
} |