summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-29 07:39:23 +0000
committeroshima@chromium.org <oshima@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-29 07:39:23 +0000
commitc39f64304ca70e8de4afdb46ac5ac4a7ed1a92eb (patch)
tree5ad0a6305e8eedc5d6c72f142c27e24f51eff244
parent34ebf389303ff6d53c2c0c9af6ed74162e0ec881 (diff)
downloadchromium_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.cc16
-rw-r--r--chrome/browser/chromeos/frame/panel_controller.h1
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_; }