Index: chrome/browser/chromeos/frame/browser_view.cc |
diff --git a/chrome/browser/chromeos/frame/browser_view.cc b/chrome/browser/chromeos/frame/browser_view.cc |
index 8605e911e4e4e0ada93ac5c3c2d6c0ca5e432b82..27fa0159323a5cf711fe2e36b3171d34ccf1bd3a 100644 |
--- a/chrome/browser/chromeos/frame/browser_view.cc |
+++ b/chrome/browser/chromeos/frame/browser_view.cc |
@@ -155,8 +155,10 @@ class BrowserViewLayout : public ::BrowserViewLayout { |
// area. See Layout |
virtual int LayoutTabStripRegion() OVERRIDE { |
if (browser_view_->IsFullscreen() || !browser_view_->IsTabStripVisible()) { |
- status_area_->SetVisible(false); |
- UpdateStatusAreaBoundsProperty(); |
+ if (status_area_) { |
+ status_area_->SetVisible(false); |
+ UpdateStatusAreaBoundsProperty(); |
+ } |
tabstrip_->SetVisible(false); |
tabstrip_->SetBounds(0, 0, 0, 0); |
layout_mode_button_->SetVisible(false); |
@@ -196,12 +198,13 @@ class BrowserViewLayout : public ::BrowserViewLayout { |
// considered title bar area of client view. |
bool IsPointInViewsInTitleArea(const gfx::Point& point) |
const { |
- gfx::Point point_in_status_area_coords(point); |
- views::View::ConvertPointToView(browser_view_, status_area_, |
- &point_in_status_area_coords); |
- if (status_area_->HitTest(point_in_status_area_coords)) |
- return true; |
- |
+ if (status_area_) { |
+ gfx::Point point_in_status_area_coords(point); |
+ views::View::ConvertPointToView(browser_view_, status_area_, |
+ &point_in_status_area_coords); |
+ if (status_area_->HitTest(point_in_status_area_coords)) |
+ return true; |
+ } |
gfx::Point point_in_layout_mode_button_coords(point); |
views::View::ConvertPointToView(browser_view_, layout_mode_button_, |
&point_in_layout_mode_button_coords); |
@@ -221,8 +224,10 @@ class BrowserViewLayout : public ::BrowserViewLayout { |
chromeos_browser_view()->should_show_layout_mode_button(); |
tabstrip_->SetVisible(true); |
- status_area_->SetVisible( |
- !chromeos_browser_view()->has_hide_status_area_property()); |
+ if (status_area_) { |
+ status_area_->SetVisible( |
+ !chromeos_browser_view()->has_hide_status_area_property()); |
+ } |
layout_mode_button_->SetVisible(show_layout_mode_button); |
const gfx::Size layout_mode_button_size = |
@@ -233,28 +238,32 @@ class BrowserViewLayout : public ::BrowserViewLayout { |
layout_mode_button_size.width(), |
layout_mode_button_size.height()); |
- // Lay out status area after tab strip and before layout mode button (if |
- // shown). |
- gfx::Size status_size = status_area_->GetPreferredSize(); |
- const int status_right = |
- show_layout_mode_button ? |
- layout_mode_button_->bounds().x() : |
- bounds.right(); |
- status_area_->SetBounds( |
- status_right - status_size.width(), |
- bounds.y() + kStatusAreaVerticalAdjustment, |
- status_size.width(), |
- status_size.height()); |
- UpdateStatusAreaBoundsProperty(); |
+ if (status_area_) { |
+ // Lay out status area after tab strip and before layout mode button (if |
+ // shown). |
+ gfx::Size status_size = status_area_->GetPreferredSize(); |
+ const int status_right = |
+ show_layout_mode_button ? |
+ layout_mode_button_->bounds().x() : |
+ bounds.right(); |
+ status_area_->SetBounds( |
+ status_right - status_size.width(), |
+ bounds.y() + kStatusAreaVerticalAdjustment, |
+ status_size.width(), |
+ status_size.height()); |
+ UpdateStatusAreaBoundsProperty(); |
+ } |
tabstrip_->SetBounds(bounds.x(), bounds.y(), |
- std::max(0, status_area_->bounds().x() - bounds.x()), |
- bounds.height()); |
+ std::max(0, status_area_->bounds().x() - bounds.x()), |
+ bounds.height()); |
return bounds.bottom(); |
} |
// Updates |status_area_bounds_for_property_| based on the current bounds and |
// calls WmIpc::SetStatusBoundsProperty() if it changed. |
void UpdateStatusAreaBoundsProperty() { |
+ if (!status_area_) |
+ return; |
gfx::Rect current_bounds; |
if (status_area_->IsVisible()) { |
gfx::Rect translated_bounds = |
@@ -388,7 +397,8 @@ void BrowserView::ShowInternal(bool is_active) { |
} |
void BrowserView::FocusChromeOSStatus() { |
- status_area_->SetPaneFocus(NULL); |
+ if (status_area_) |
+ status_area_->SetPaneFocus(NULL); |
} |
views::LayoutManager* BrowserView::CreateLayoutManager() const { |
@@ -505,14 +515,14 @@ bool BrowserView::ShouldExecuteStatusAreaCommand( |
void BrowserView::ExecuteStatusAreaCommand( |
const views::View* button_view, int command_id) { |
switch (command_id) { |
- case StatusAreaViewChromeos::SHOW_NETWORK_OPTIONS: |
+ case StatusAreaButton::Delegate::SHOW_NETWORK_OPTIONS: |
browser()->OpenInternetOptionsDialog(); |
break; |
- case StatusAreaViewChromeos::SHOW_LANGUAGE_OPTIONS: |
+ case StatusAreaButton::Delegate::SHOW_LANGUAGE_OPTIONS: |
browser()->OpenLanguageOptionsDialog(); |
break; |
- case StatusAreaViewChromeos::SHOW_SYSTEM_OPTIONS: |
- browser()->OpenLanguageOptionsDialog(); |
+ case StatusAreaButton::Delegate::SHOW_SYSTEM_OPTIONS: |
+ browser()->OpenSystemOptionsDialog(); |
break; |
default: |
NOTREACHED(); |
@@ -535,7 +545,8 @@ StatusAreaButton::TextStyle BrowserView::GetStatusAreaTextStyle() const { |
} |
void BrowserView::ButtonVisibilityChanged(views::View* button_view) { |
- status_area_->UpdateButtonVisibility(); |
+ if (status_area_) |
+ status_area_->UpdateButtonVisibility(); |
} |
// BrowserView, MessageLoopForUI::Observer implementation. |
@@ -575,7 +586,8 @@ void BrowserView::DidProcessEvent(GdkEvent* event) { |
void BrowserView::GetAccessiblePanes( |
std::vector<views::AccessiblePaneView*>* panes) { |
::BrowserView::GetAccessiblePanes(panes); |
- panes->push_back(status_area_); |
+ if (status_area_) |
+ panes->push_back(status_area_); |
} |
// BrowserView private. |