diff options
author | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-29 07:39:23 +0000 |
---|---|---|
committer | oshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-29 07:39:23 +0000 |
commit | c39f64304ca70e8de4afdb46ac5ac4a7ed1a92eb (patch) | |
tree | 5ad0a6305e8eedc5d6c72f142c27e24f51eff244 | |
parent | 34ebf389303ff6d53c2c0c9af6ed74162e0ec881 (diff) | |
download | chromium_src-c39f64304ca70e8de4afdb46ac5ac4a7ed1a92eb.zip chromium_src-c39f64304ca70e8de4afdb46ac5ac4a7ed1a92eb.tar.gz chromium_src-c39f64304ca70e8de4afdb46ac5ac4a7ed1a92eb.tar.bz2 |
Adding dchecks that may help diagnose the issue http://crosbug.com/2743
BUG=http://crosbug.com/2743
TEST=none
Review URL: http://codereview.chromium.org/1711017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@45920 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/frame/panel_controller.cc | 16 | ||||
-rw-r--r-- | chrome/browser/chromeos/frame/panel_controller.h | 1 |
2 files changed, 16 insertions, 1 deletions
diff --git a/chrome/browser/chromeos/frame/panel_controller.cc b/chrome/browser/chromeos/frame/panel_controller.cc index f683607..c89dd48 100644 --- a/chrome/browser/chromeos/frame/panel_controller.cc +++ b/chrome/browser/chromeos/frame/panel_controller.cc @@ -81,6 +81,8 @@ PanelController::PanelController(Delegate* delegate, panel_(window), panel_xid_(x11_util::GetX11WindowFromGtkWidget(GTK_WIDGET(panel_))), title_window_(NULL), + title_(NULL), + title_content_(NULL), expanded_(true), mouse_down_(false), dragging_(false), @@ -123,6 +125,7 @@ void PanelController::Init(const gfx::Rect window_bounds) { void PanelController::UpdateTitleBar() { if (!delegate_ || !title_window_) return; + DCHECK(title_content_); title_content_->title_label()->SetText( UTF16ToWideHack(delegate_->GetPanelTitle())); title_content_->title_icon()->SetImage(delegate_->GetPanelIcon()); @@ -138,7 +141,7 @@ bool PanelController::TitleMousePressed(const views::MouseEvent& event) { NOTREACHED(); return false; } - + DCHECK(title_); // Get the last titlebar width that we saw in a ConfigureNotify event -- we // need to give drag positions in terms of the top-right corner of the // titlebar window. See WM_NOTIFY_PANEL_DRAGGED's declaration for details. @@ -259,11 +262,15 @@ void PanelController::Close() { if (title_window_) { title_window_->Close(); title_window_ = NULL; + title_ = NULL; + title_content_->OnClose(); + title_content_ = NULL; } } void PanelController::ButtonPressed( views::Button* sender, const views::Event& event) { + DCHECK(title_content_); if (title_window_ && sender == title_content_->close_button()) { if (delegate_) delegate_->ClosePanel(); @@ -315,16 +322,19 @@ void PanelController::TitleContentView::Layout() { bool PanelController::TitleContentView::OnMousePressed( const views::MouseEvent& event) { + DCHECK(panel_controller_) << "OnMousePressed after Close"; return panel_controller_->TitleMousePressed(event); } void PanelController::TitleContentView::OnMouseReleased( const views::MouseEvent& event, bool canceled) { + DCHECK(panel_controller_) << "MouseReleased after Close"; return panel_controller_->TitleMouseReleased(event, canceled); } bool PanelController::TitleContentView::OnMouseDragged( const views::MouseEvent& event) { + DCHECK(panel_controller_) << "MouseDragged after Close"; return panel_controller_->TitleMouseDragged(event); } @@ -346,4 +356,8 @@ void PanelController::TitleContentView::OnFocusOut() { SchedulePaint(); } +void PanelController::TitleContentView::OnClose() { + panel_controller_ = NULL; +} + } // namespace chromeos diff --git a/chrome/browser/chromeos/frame/panel_controller.h b/chrome/browser/chromeos/frame/panel_controller.h index 8094e71..2a06d53 100644 --- a/chrome/browser/chromeos/frame/panel_controller.h +++ b/chrome/browser/chromeos/frame/panel_controller.h @@ -76,6 +76,7 @@ class PanelController : public views::ButtonListener { virtual bool OnMouseDragged(const views::MouseEvent& event); void OnFocusIn(); void OnFocusOut(); + void OnClose(); views::ImageView* title_icon() { return title_icon_; } views::Label* title_label() { return title_label_; } |