| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "ash/wm/workspace/workspace_event_handler.h" | 5 #include "ash/wm/workspace/workspace_event_handler.h" |
| 6 | 6 |
| 7 #include "ash/screen_ash.h" | 7 #include "ash/screen_ash.h" |
| 8 #include "ash/shell.h" | 8 #include "ash/shell.h" |
| 9 #include "ash/wm/property_util.h" | 9 #include "ash/wm/property_util.h" |
| 10 #include "ash/wm/window_util.h" | 10 #include "ash/wm/window_util.h" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 WorkspaceEventHandler::WorkspaceEventHandler(aura::Window* owner) | 58 WorkspaceEventHandler::WorkspaceEventHandler(aura::Window* owner) |
| 59 : ToplevelWindowEventHandler(owner), | 59 : ToplevelWindowEventHandler(owner), |
| 60 destroyed_(NULL) { | 60 destroyed_(NULL) { |
| 61 } | 61 } |
| 62 | 62 |
| 63 WorkspaceEventHandler::~WorkspaceEventHandler() { | 63 WorkspaceEventHandler::~WorkspaceEventHandler() { |
| 64 if (destroyed_) | 64 if (destroyed_) |
| 65 *destroyed_ = true; | 65 *destroyed_ = true; |
| 66 } | 66 } |
| 67 | 67 |
| 68 ui::EventResult WorkspaceEventHandler::OnMouseEvent(ui::MouseEvent* event) { | 68 void WorkspaceEventHandler::OnMouseEvent(ui::MouseEvent* event) { |
| 69 aura::Window* target = static_cast<aura::Window*>(event->target()); | 69 aura::Window* target = static_cast<aura::Window*>(event->target()); |
| 70 switch (event->type()) { | 70 switch (event->type()) { |
| 71 case ui::ET_MOUSE_MOVED: { | 71 case ui::ET_MOUSE_MOVED: { |
| 72 int component = | 72 int component = |
| 73 target->delegate()->GetNonClientComponent(event->location()); | 73 target->delegate()->GetNonClientComponent(event->location()); |
| 74 multi_window_resize_controller_.Show(target, component, | 74 multi_window_resize_controller_.Show(target, component, |
| 75 event->location()); | 75 event->location()); |
| 76 break; | 76 break; |
| 77 } | 77 } |
| 78 case ui::ET_MOUSE_ENTERED: | 78 case ui::ET_MOUSE_ENTERED: |
| 79 break; | 79 break; |
| 80 case ui::ET_MOUSE_CAPTURE_CHANGED: | 80 case ui::ET_MOUSE_CAPTURE_CHANGED: |
| 81 case ui::ET_MOUSE_EXITED: | 81 case ui::ET_MOUSE_EXITED: |
| 82 break; | 82 break; |
| 83 case ui::ET_MOUSE_PRESSED: { | 83 case ui::ET_MOUSE_PRESSED: { |
| 84 // Maximize behavior is implemented as post-target handling so the target | 84 // Maximize behavior is implemented as post-target handling so the target |
| 85 // can cancel it. | 85 // can cancel it. |
| 86 if (ui::EventCanceledDefaultHandling(*event)) | 86 if (ui::EventCanceledDefaultHandling(*event)) { |
| 87 return ToplevelWindowEventHandler::OnMouseEvent(event); | 87 ToplevelWindowEventHandler::OnMouseEvent(event); |
| 88 return; |
| 89 } |
| 88 | 90 |
| 89 if (event->flags() & ui::EF_IS_DOUBLE_CLICK && | 91 if (event->flags() & ui::EF_IS_DOUBLE_CLICK && |
| 90 target->delegate()->GetNonClientComponent(event->location()) == | 92 target->delegate()->GetNonClientComponent(event->location()) == |
| 91 HTCAPTION) { | 93 HTCAPTION) { |
| 92 bool destroyed = false; | 94 bool destroyed = false; |
| 93 destroyed_ = &destroyed; | 95 destroyed_ = &destroyed; |
| 94 ToggleMaximizedState(target); | 96 ToggleMaximizedState(target); |
| 95 if (destroyed) | 97 if (destroyed) |
| 96 return ui::ER_UNHANDLED; | 98 return; |
| 97 destroyed_ = NULL; | 99 destroyed_ = NULL; |
| 98 } | 100 } |
| 99 multi_window_resize_controller_.Hide(); | 101 multi_window_resize_controller_.Hide(); |
| 100 HandleVerticalResizeDoubleClick(target, event); | 102 HandleVerticalResizeDoubleClick(target, event); |
| 101 break; | 103 break; |
| 102 } | 104 } |
| 103 default: | 105 default: |
| 104 break; | 106 break; |
| 105 } | 107 } |
| 106 return ToplevelWindowEventHandler::OnMouseEvent(event); | 108 ToplevelWindowEventHandler::OnMouseEvent(event); |
| 107 } | 109 } |
| 108 | 110 |
| 109 void WorkspaceEventHandler::OnGestureEvent(ui::GestureEvent* event) { | 111 void WorkspaceEventHandler::OnGestureEvent(ui::GestureEvent* event) { |
| 110 aura::Window* target = static_cast<aura::Window*>(event->target()); | 112 aura::Window* target = static_cast<aura::Window*>(event->target()); |
| 111 if (event->type() == ui::ET_GESTURE_DOUBLE_TAP && | 113 if (event->type() == ui::ET_GESTURE_DOUBLE_TAP && |
| 112 target->delegate()->GetNonClientComponent(event->location()) == | 114 target->delegate()->GetNonClientComponent(event->location()) == |
| 113 HTCAPTION) { | 115 HTCAPTION) { |
| 114 ToggleMaximizedState(target); // |this| may be destroyed from here. | 116 ToggleMaximizedState(target); // |this| may be destroyed from here. |
| 115 event->StopPropagation(); | 117 event->StopPropagation(); |
| 116 return; | 118 return; |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 159 target->bounds().y(), | 161 target->bounds().y(), |
| 160 work_area.width(), | 162 work_area.width(), |
| 161 target->bounds().height())); | 163 target->bounds().height())); |
| 162 } | 164 } |
| 163 } | 165 } |
| 164 } | 166 } |
| 165 } | 167 } |
| 166 | 168 |
| 167 } // namespace internal | 169 } // namespace internal |
| 168 } // namespace ash | 170 } // namespace ash |
| OLD | NEW |