| Index: ash/wm/workspace/workspace_event_handler.cc
|
| diff --git a/ash/wm/workspace/workspace_event_handler.cc b/ash/wm/workspace/workspace_event_handler.cc
|
| index 2723bea1ef5c199bc661df13b4ac3eb7185bbbf1..e931b4ac701cddc1ef060efb33c231863404763b 100644
|
| --- a/ash/wm/workspace/workspace_event_handler.cc
|
| +++ b/ash/wm/workspace/workspace_event_handler.cc
|
| @@ -54,14 +54,10 @@ void ToggleMaximizedState(wm::WindowState* window_state) {
|
|
|
| namespace internal {
|
|
|
| -WorkspaceEventHandler::WorkspaceEventHandler(aura::Window* owner)
|
| - : ToplevelWindowEventHandler(owner),
|
| - destroyed_(NULL) {
|
| +WorkspaceEventHandler::WorkspaceEventHandler() {
|
| }
|
|
|
| WorkspaceEventHandler::~WorkspaceEventHandler() {
|
| - if (destroyed_)
|
| - *destroyed_ = true;
|
| }
|
|
|
| void WorkspaceEventHandler::OnMouseEvent(ui::MouseEvent* event) {
|
| @@ -82,23 +78,17 @@ void WorkspaceEventHandler::OnMouseEvent(ui::MouseEvent* event) {
|
| case ui::ET_MOUSE_PRESSED: {
|
| // Maximize behavior is implemented as post-target handling so the target
|
| // can cancel it.
|
| - if (ui::EventCanceledDefaultHandling(*event)) {
|
| - ToplevelWindowEventHandler::OnMouseEvent(event);
|
| + if (ui::EventCanceledDefaultHandling(*event))
|
| return;
|
| - }
|
| wm::WindowState* target_state = wm::GetWindowState(target);
|
| if (event->flags() & ui::EF_IS_DOUBLE_CLICK &&
|
| event->IsOnlyLeftMouseButton() &&
|
| target->delegate()->GetNonClientComponent(event->location()) ==
|
| HTCAPTION) {
|
| - bool destroyed = false;
|
| - destroyed_ = &destroyed;
|
| ash::Shell::GetInstance()->delegate()->RecordUserMetricsAction(
|
| ash::UMA_TOGGLE_MAXIMIZE_CAPTION_CLICK);
|
| ToggleMaximizedState(target_state);
|
| - if (destroyed)
|
| - return;
|
| - destroyed_ = NULL;
|
| + event->StopPropagation();
|
| }
|
| multi_window_resize_controller_.Hide();
|
| HandleVerticalResizeDoubleClick(target_state, event);
|
| @@ -107,7 +97,6 @@ void WorkspaceEventHandler::OnMouseEvent(ui::MouseEvent* event) {
|
| default:
|
| break;
|
| }
|
| - ToplevelWindowEventHandler::OnMouseEvent(event);
|
| }
|
|
|
| void WorkspaceEventHandler::OnGestureEvent(ui::GestureEvent* event) {
|
| @@ -122,7 +111,6 @@ void WorkspaceEventHandler::OnGestureEvent(ui::GestureEvent* event) {
|
| // TouchUMA::GESTURE_MAXIMIZE_DOUBLETAP is counted once.
|
| TouchUMA::GetInstance()->RecordGestureAction(
|
| TouchUMA::GESTURE_MAXIMIZE_DOUBLETAP);
|
| - // |this| may be destroyed from here.
|
| ToggleMaximizedState(wm::GetWindowState(target));
|
| event->StopPropagation();
|
| return;
|
| @@ -132,7 +120,6 @@ void WorkspaceEventHandler::OnGestureEvent(ui::GestureEvent* event) {
|
| TouchUMA::GESTURE_FRAMEVIEW_TAP);
|
| }
|
| }
|
| - ToplevelWindowEventHandler::OnGestureEvent(event);
|
| }
|
|
|
| void WorkspaceEventHandler::HandleVerticalResizeDoubleClick(
|
| @@ -154,6 +141,7 @@ void WorkspaceEventHandler::HandleVerticalResizeDoubleClick(
|
| target->bounds().y() == work_area.y())) {
|
| SingleAxisUnmaximize(target_state,
|
| target_state->GetRestoreBoundsInScreen());
|
| + event->StopPropagation();
|
| } else {
|
| gfx::Point origin = target->bounds().origin();
|
| wm::ConvertPointToScreen(target->parent(), &origin);
|
| @@ -162,6 +150,7 @@ void WorkspaceEventHandler::HandleVerticalResizeDoubleClick(
|
| work_area.y(),
|
| target->bounds().width(),
|
| work_area.height()));
|
| + event->StopPropagation();
|
| }
|
| } else if (component == HTLEFT || component == HTRIGHT) {
|
| // Don't maximize horizontally if the window has a max width defined.
|
| @@ -172,6 +161,7 @@ void WorkspaceEventHandler::HandleVerticalResizeDoubleClick(
|
| target->bounds().x() == work_area.x())) {
|
| SingleAxisUnmaximize(target_state,
|
| target_state->GetRestoreBoundsInScreen());
|
| + event->StopPropagation();
|
| } else {
|
| gfx::Point origin = target->bounds().origin();
|
| wm::ConvertPointToScreen(target->parent(), &origin);
|
| @@ -180,6 +170,7 @@ void WorkspaceEventHandler::HandleVerticalResizeDoubleClick(
|
| origin.y(),
|
| work_area.width(),
|
| target->bounds().height()));
|
| + event->StopPropagation();
|
| }
|
| }
|
| }
|
|
|