Index: chrome/browser/chromeos/frame/panel_controller.cc |
diff --git a/chrome/browser/chromeos/frame/panel_controller.cc b/chrome/browser/chromeos/frame/panel_controller.cc |
index 5ada8ba77af469de4b33bbd0723bda1ed365f77d..fad661167c7ae7d020e1dfc0659787fa71c67853 100644 |
--- a/chrome/browser/chromeos/frame/panel_controller.cc |
+++ b/chrome/browser/chromeos/frame/panel_controller.cc |
@@ -165,9 +165,8 @@ void PanelController::UpdateTitleBar() { |
} |
bool PanelController::TitleMousePressed(const views::MouseEvent& event) { |
- if (!event.IsOnlyLeftMouseButton()) { |
+ if (!event.IsOnlyLeftMouseButton()) |
return false; |
- } |
GdkEvent* gdk_event = gtk_get_current_event(); |
if (gdk_event->type != GDK_BUTTON_PRESS) { |
gdk_event_free(gdk_event); |
@@ -193,40 +192,9 @@ bool PanelController::TitleMousePressed(const views::MouseEvent& event) { |
return true; |
} |
-void PanelController::TitleMouseReleased( |
- const views::MouseEvent& event, bool canceled) { |
- if (!event.IsLeftMouseButton()) { |
- return; |
- } |
- // Only handle clicks that started in our window. |
- if (!mouse_down_) { |
- return; |
- } |
- |
- mouse_down_ = false; |
- if (!dragging_) { |
- SetState(expanded_ ? |
- PanelController::MINIMIZED : PanelController::EXPANDED); |
- } else { |
- WmIpc::Message msg(WM_IPC_MESSAGE_WM_NOTIFY_PANEL_DRAG_COMPLETE); |
- msg.set_param(0, panel_xid_); |
- WmIpc::instance()->SendMessage(msg); |
- dragging_ = false; |
- } |
-} |
- |
-void PanelController::SetState(State state) { |
- WmIpc::Message msg(WM_IPC_MESSAGE_WM_SET_PANEL_STATE); |
- msg.set_param(0, panel_xid_); |
- msg.set_param(1, state == EXPANDED); |
- WmIpc::instance()->SendMessage(msg); |
-} |
- |
bool PanelController::TitleMouseDragged(const views::MouseEvent& event) { |
- if (!mouse_down_) { |
+ if (!mouse_down_) |
return false; |
- } |
- |
GdkEvent* gdk_event = gtk_get_current_event(); |
if (gdk_event->type != GDK_MOTION_NOTIFY) { |
gdk_event_free(gdk_event); |
@@ -252,6 +220,35 @@ bool PanelController::TitleMouseDragged(const views::MouseEvent& event) { |
return true; |
} |
+void PanelController::TitleMouseReleased(const views::MouseEvent& event) { |
+ if (event.IsLeftMouseButton()) |
+ TitleMouseCaptureLost(); |
+} |
+ |
+void PanelController::TitleMouseCaptureLost() { |
+ // Only handle clicks that started in our window. |
+ if (!mouse_down_) |
+ return; |
+ |
+ mouse_down_ = false; |
+ if (!dragging_) { |
+ SetState(expanded_ ? |
+ PanelController::MINIMIZED : PanelController::EXPANDED); |
+ } else { |
+ WmIpc::Message msg(WM_IPC_MESSAGE_WM_NOTIFY_PANEL_DRAG_COMPLETE); |
+ msg.set_param(0, panel_xid_); |
+ WmIpc::instance()->SendMessage(msg); |
+ dragging_ = false; |
+ } |
+} |
+ |
+void PanelController::SetState(State state) { |
+ WmIpc::Message msg(WM_IPC_MESSAGE_WM_SET_PANEL_STATE); |
+ msg.set_param(0, panel_xid_); |
+ msg.set_param(1, state == EXPANDED); |
+ WmIpc::instance()->SendMessage(msg); |
+} |
+ |
// static |
bool PanelController::OnPanelClientEvent( |
GtkWidget* widget, |
@@ -339,6 +336,24 @@ PanelController::TitleContentView::TitleContentView( |
OnFocusOut(); |
} |
+void PanelController::TitleContentView::OnFocusIn() { |
+ title_label_->SetColor(kTitleActiveColor); |
+ title_label_->SetFont(*active_font); |
+ Layout(); |
+ SchedulePaint(); |
+} |
+ |
+void PanelController::TitleContentView::OnFocusOut() { |
+ title_label_->SetColor(kTitleInactiveColor); |
+ title_label_->SetFont(*inactive_font); |
+ Layout(); |
+ SchedulePaint(); |
+} |
+ |
+void PanelController::TitleContentView::OnClose() { |
+ panel_controller_ = NULL; |
+} |
+ |
void PanelController::TitleContentView::Layout() { |
int close_button_x = bounds().width() - |
(close_button_width + kTitleCloseButtonPad); |
@@ -366,34 +381,21 @@ bool PanelController::TitleContentView::OnMousePressed( |
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); |
} |
-void PanelController::TitleContentView::OnFocusIn() { |
- title_label_->SetColor(kTitleActiveColor); |
- title_label_->SetFont(*active_font); |
- Layout(); |
- SchedulePaint(); |
-} |
- |
-void PanelController::TitleContentView::OnFocusOut() { |
- title_label_->SetColor(kTitleInactiveColor); |
- title_label_->SetFont(*inactive_font); |
- Layout(); |
- SchedulePaint(); |
+void PanelController::TitleContentView::OnMouseReleased( |
+ const views::MouseEvent& event) { |
+ DCHECK(panel_controller_) << "MouseReleased after Close"; |
+ return panel_controller_->TitleMouseReleased(event); |
} |
-void PanelController::TitleContentView::OnClose() { |
- panel_controller_ = NULL; |
+void PanelController::TitleContentView::OnMouseCaptureLost() { |
+ DCHECK(panel_controller_) << "OnMouseCaptureLost after Close"; |
Ben Goodger (Google)
2011/03/19 15:32:55
These kind of DCHECKs are unnecessary. You're goin
msw
2011/03/26 00:09:50
Done. Fixed this file and double-checked my other
|
+ return panel_controller_->TitleMouseCaptureLost(); |
} |
void PanelController::TitleContentView::ButtonPressed( |