Chromium Code Reviews| 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( |