Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(196)

Side by Side Diff: ash/drag_drop/drag_drop_controller.cc

Issue 425363002: Moving coordinate conversion methods from ash/wm to ui/wm. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: More fixes Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « ash/display/mouse_cursor_event_filter_ozone.cc ('k') | ash/drag_drop/drag_drop_tracker.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/drag_drop/drag_drop_controller.h" 5 #include "ash/drag_drop/drag_drop_controller.h"
6 6
7 #include "ash/drag_drop/drag_drop_tracker.h" 7 #include "ash/drag_drop/drag_drop_tracker.h"
8 #include "ash/drag_drop/drag_image_view.h" 8 #include "ash/drag_drop/drag_image_view.h"
9 #include "ash/shell.h" 9 #include "ash/shell.h"
10 #include "ash/wm/coordinate_conversion.h"
11 #include "base/bind.h" 10 #include "base/bind.h"
12 #include "base/message_loop/message_loop.h" 11 #include "base/message_loop/message_loop.h"
13 #include "base/run_loop.h" 12 #include "base/run_loop.h"
14 #include "ui/aura/client/capture_client.h" 13 #include "ui/aura/client/capture_client.h"
15 #include "ui/aura/env.h" 14 #include "ui/aura/env.h"
16 #include "ui/aura/window.h" 15 #include "ui/aura/window.h"
17 #include "ui/aura/window_delegate.h" 16 #include "ui/aura/window_delegate.h"
18 #include "ui/aura/window_event_dispatcher.h" 17 #include "ui/aura/window_event_dispatcher.h"
19 #include "ui/base/dragdrop/drag_drop_types.h" 18 #include "ui/base/dragdrop/drag_drop_types.h"
20 #include "ui/base/dragdrop/os_exchange_data.h" 19 #include "ui/base/dragdrop/os_exchange_data.h"
21 #include "ui/base/hit_test.h" 20 #include "ui/base/hit_test.h"
22 #include "ui/events/event.h" 21 #include "ui/events/event.h"
23 #include "ui/events/event_utils.h" 22 #include "ui/events/event_utils.h"
24 #include "ui/gfx/animation/linear_animation.h" 23 #include "ui/gfx/animation/linear_animation.h"
25 #include "ui/gfx/path.h" 24 #include "ui/gfx/path.h"
26 #include "ui/gfx/point.h" 25 #include "ui/gfx/point.h"
27 #include "ui/gfx/rect.h" 26 #include "ui/gfx/rect.h"
28 #include "ui/gfx/rect_conversions.h" 27 #include "ui/gfx/rect_conversions.h"
29 #include "ui/views/views_delegate.h" 28 #include "ui/views/views_delegate.h"
30 #include "ui/views/widget/native_widget_aura.h" 29 #include "ui/views/widget/native_widget_aura.h"
30 #include "ui/wm/core/coordinate_conversion.h"
31 #include "ui/wm/public/drag_drop_delegate.h" 31 #include "ui/wm/public/drag_drop_delegate.h"
32 32
33 namespace ash { 33 namespace ash {
34 namespace { 34 namespace {
35 35
36 // The duration of the drag cancel animation in millisecond. 36 // The duration of the drag cancel animation in millisecond.
37 const int kCancelAnimationDuration = 250; 37 const int kCancelAnimationDuration = 250;
38 const int kTouchCancelAnimationDuration = 20; 38 const int kTouchCancelAnimationDuration = 20;
39 // The frame rate of the drag cancel animation in hertz. 39 // The frame rate of the drag cancel animation in hertz.
40 const int kCancelAnimationFrameRate = 60; 40 const int kCancelAnimationFrameRate = 60;
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 drag_data_ = &data; 191 drag_data_ = &data;
192 drag_operation_ = operation; 192 drag_operation_ = operation;
193 193
194 float drag_image_scale = 1; 194 float drag_image_scale = 1;
195 int drag_image_vertical_offset = 0; 195 int drag_image_vertical_offset = 0;
196 if (source == ui::DragDropTypes::DRAG_EVENT_SOURCE_TOUCH) { 196 if (source == ui::DragDropTypes::DRAG_EVENT_SOURCE_TOUCH) {
197 drag_image_scale = kTouchDragImageScale; 197 drag_image_scale = kTouchDragImageScale;
198 drag_image_vertical_offset = kTouchDragImageVerticalOffset; 198 drag_image_vertical_offset = kTouchDragImageVerticalOffset;
199 } 199 }
200 gfx::Point start_location = root_location; 200 gfx::Point start_location = root_location;
201 ash::wm::ConvertPointToScreen(root_window, &start_location); 201 ::wm::ConvertPointToScreen(root_window, &start_location);
202 drag_image_final_bounds_for_cancel_animation_ = gfx::Rect( 202 drag_image_final_bounds_for_cancel_animation_ = gfx::Rect(
203 start_location - provider->GetDragImageOffset(), 203 start_location - provider->GetDragImageOffset(),
204 provider->GetDragImage().size()); 204 provider->GetDragImage().size());
205 drag_image_.reset(new DragImageView(source_window->GetRootWindow(), source)); 205 drag_image_.reset(new DragImageView(source_window->GetRootWindow(), source));
206 drag_image_->SetImage(provider->GetDragImage()); 206 drag_image_->SetImage(provider->GetDragImage());
207 drag_image_offset_ = provider->GetDragImageOffset(); 207 drag_image_offset_ = provider->GetDragImageOffset();
208 gfx::Rect drag_image_bounds(start_location, drag_image_->GetPreferredSize()); 208 gfx::Rect drag_image_bounds(start_location, drag_image_->GetPreferredSize());
209 drag_image_bounds = AdjustDragImageBoundsForScaleAndOffset(drag_image_bounds, 209 drag_image_bounds = AdjustDragImageBoundsForScaleAndOffset(drag_image_bounds,
210 drag_image_vertical_offset, drag_image_scale, &drag_image_offset_); 210 drag_image_vertical_offset, drag_image_scale, &drag_image_offset_);
211 drag_image_->SetBoundsInScreen(drag_image_bounds); 211 drag_image_->SetBoundsInScreen(drag_image_bounds);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 cursor = ui::kCursorAlias; 285 cursor = ui::kCursorAlias;
286 else if (op & ui::DragDropTypes::DRAG_MOVE) 286 else if (op & ui::DragDropTypes::DRAG_MOVE)
287 cursor = ui::kCursorGrabbing; 287 cursor = ui::kCursorGrabbing;
288 ash::Shell::GetInstance()->cursor_manager()->SetCursor(cursor); 288 ash::Shell::GetInstance()->cursor_manager()->SetCursor(cursor);
289 } 289 }
290 } 290 }
291 291
292 DCHECK(drag_image_.get()); 292 DCHECK(drag_image_.get());
293 if (drag_image_->visible()) { 293 if (drag_image_->visible()) {
294 gfx::Point root_location_in_screen = event.root_location(); 294 gfx::Point root_location_in_screen = event.root_location();
295 ash::wm::ConvertPointToScreen(target->GetRootWindow(), 295 ::wm::ConvertPointToScreen(target->GetRootWindow(),
296 &root_location_in_screen); 296 &root_location_in_screen);
297 drag_image_->SetScreenPosition( 297 drag_image_->SetScreenPosition(
298 root_location_in_screen - drag_image_offset_); 298 root_location_in_screen - drag_image_offset_);
299 drag_image_->SetTouchDragOperation(op); 299 drag_image_->SetTouchDragOperation(op);
300 } 300 }
301 } 301 }
302 302
303 void DragDropController::Drop(aura::Window* target, 303 void DragDropController::Drop(aura::Window* target,
304 const ui::LocatedEvent& event) { 304 const ui::LocatedEvent& event) {
305 ash::Shell::GetInstance()->cursor_manager()->SetCursor(ui::kCursorPointer); 305 ash::Shell::GetInstance()->cursor_manager()->SetCursor(ui::kCursorPointer);
306 306
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
557 if (drag_window_) 557 if (drag_window_)
558 drag_window_->RemoveObserver(this); 558 drag_window_->RemoveObserver(this);
559 drag_window_ = NULL; 559 drag_window_ = NULL;
560 drag_data_ = NULL; 560 drag_data_ = NULL;
561 // Cleanup can be called again while deleting DragDropTracker, so use Pass 561 // Cleanup can be called again while deleting DragDropTracker, so use Pass
562 // instead of reset to avoid double free. 562 // instead of reset to avoid double free.
563 drag_drop_tracker_.Pass(); 563 drag_drop_tracker_.Pass();
564 } 564 }
565 565
566 } // namespace ash 566 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/mouse_cursor_event_filter_ozone.cc ('k') | ash/drag_drop/drag_drop_tracker.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698