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

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

Issue 382673002: Fixes for re-enabling more MSVC level 4 warnings: misc edition #2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 | Annotate | Revision Log
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" 10 #include "ash/wm/coordinate_conversion.h"
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
239 if (drag_source_window_) 239 if (drag_source_window_)
240 drag_source_window_->RemoveObserver(this); 240 drag_source_window_->RemoveObserver(this);
241 drag_source_window_ = NULL; 241 drag_source_window_ = NULL;
242 } 242 }
243 243
244 return drag_operation_; 244 return drag_operation_;
245 } 245 }
246 246
247 void DragDropController::DragUpdate(aura::Window* target, 247 void DragDropController::DragUpdate(aura::Window* target,
248 const ui::LocatedEvent& event) { 248 const ui::LocatedEvent& event) {
249 aura::client::DragDropDelegate* delegate = NULL;
250 int op = ui::DragDropTypes::DRAG_NONE; 249 int op = ui::DragDropTypes::DRAG_NONE;
251 if (target != drag_window_) { 250 if (target != drag_window_) {
252 if (drag_window_) { 251 if (drag_window_) {
253 if ((delegate = aura::client::GetDragDropDelegate(drag_window_))) 252 aura::client::DragDropDelegate* delegate =
253 aura::client::GetDragDropDelegate(drag_window_);
254 if (delegate)
254 delegate->OnDragExited(); 255 delegate->OnDragExited();
255 if (drag_window_ != drag_source_window_) 256 if (drag_window_ != drag_source_window_)
256 drag_window_->RemoveObserver(this); 257 drag_window_->RemoveObserver(this);
257 } 258 }
258 drag_window_ = target; 259 drag_window_ = target;
259 // We are already an observer of |drag_source_window_| so no need to add. 260 // We are already an observer of |drag_source_window_| so no need to add.
260 if (drag_window_ != drag_source_window_) 261 if (drag_window_ != drag_source_window_)
261 drag_window_->AddObserver(this); 262 drag_window_->AddObserver(this);
262 if ((delegate = aura::client::GetDragDropDelegate(drag_window_))) { 263 aura::client::DragDropDelegate* delegate =
264 aura::client::GetDragDropDelegate(drag_window_);
265 if (delegate) {
263 ui::DropTargetEvent e(*drag_data_, 266 ui::DropTargetEvent e(*drag_data_,
264 event.location(), 267 event.location(),
265 event.root_location(), 268 event.root_location(),
266 drag_operation_); 269 drag_operation_);
267 e.set_flags(event.flags()); 270 e.set_flags(event.flags());
268 delegate->OnDragEntered(e); 271 delegate->OnDragEntered(e);
269 } 272 }
270 } else { 273 } else {
271 if ((delegate = aura::client::GetDragDropDelegate(drag_window_))) { 274 aura::client::DragDropDelegate* delegate =
275 aura::client::GetDragDropDelegate(drag_window_);
276 if (delegate) {
272 ui::DropTargetEvent e(*drag_data_, 277 ui::DropTargetEvent e(*drag_data_,
273 event.location(), 278 event.location(),
274 event.root_location(), 279 event.root_location(),
275 drag_operation_); 280 drag_operation_);
276 e.set_flags(event.flags()); 281 e.set_flags(event.flags());
277 op = delegate->OnDragUpdated(e); 282 op = delegate->OnDragUpdated(e);
278 gfx::NativeCursor cursor = ui::kCursorNoDrop; 283 gfx::NativeCursor cursor = ui::kCursorNoDrop;
279 if (op & ui::DragDropTypes::DRAG_COPY) 284 if (op & ui::DragDropTypes::DRAG_COPY)
280 cursor = ui::kCursorCopy; 285 cursor = ui::kCursorCopy;
281 else if (op & ui::DragDropTypes::DRAG_LINK) 286 else if (op & ui::DragDropTypes::DRAG_LINK)
(...skipping 11 matching lines...) Expand all
293 &root_location_in_screen); 298 &root_location_in_screen);
294 drag_image_->SetScreenPosition( 299 drag_image_->SetScreenPosition(
295 root_location_in_screen - drag_image_offset_); 300 root_location_in_screen - drag_image_offset_);
296 drag_image_->SetTouchDragOperation(op); 301 drag_image_->SetTouchDragOperation(op);
297 } 302 }
298 } 303 }
299 304
300 void DragDropController::Drop(aura::Window* target, 305 void DragDropController::Drop(aura::Window* target,
301 const ui::LocatedEvent& event) { 306 const ui::LocatedEvent& event) {
302 ash::Shell::GetInstance()->cursor_manager()->SetCursor(ui::kCursorPointer); 307 ash::Shell::GetInstance()->cursor_manager()->SetCursor(ui::kCursorPointer);
303 aura::client::DragDropDelegate* delegate = NULL;
304 308
305 // We must guarantee that a target gets a OnDragEntered before Drop. WebKit 309 // We must guarantee that a target gets a OnDragEntered before Drop. WebKit
306 // depends on not getting a Drop without DragEnter. This behavior is 310 // depends on not getting a Drop without DragEnter. This behavior is
307 // consistent with drag/drop on other platforms. 311 // consistent with drag/drop on other platforms.
308 if (target != drag_window_) 312 if (target != drag_window_)
309 DragUpdate(target, event); 313 DragUpdate(target, event);
310 DCHECK(target == drag_window_); 314 DCHECK(target == drag_window_);
311 315
312 if ((delegate = aura::client::GetDragDropDelegate(target))) { 316 aura::client::DragDropDelegate* delegate =
317 aura::client::GetDragDropDelegate(target);
318 if (delegate) {
313 ui::DropTargetEvent e( 319 ui::DropTargetEvent e(
314 *drag_data_, event.location(), event.root_location(), drag_operation_); 320 *drag_data_, event.location(), event.root_location(), drag_operation_);
315 e.set_flags(event.flags()); 321 e.set_flags(event.flags());
316 drag_operation_ = delegate->OnPerformDrop(e); 322 drag_operation_ = delegate->OnPerformDrop(e);
317 if (drag_operation_ == 0) 323 if (drag_operation_ == 0)
318 StartCanceledAnimation(kCancelAnimationDuration); 324 StartCanceledAnimation(kCancelAnimationDuration);
319 else 325 else
320 drag_image_.reset(); 326 drag_image_.reset();
321 } else { 327 } else {
322 drag_image_.reset(); 328 drag_image_.reset();
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
553 if (drag_window_) 559 if (drag_window_)
554 drag_window_->RemoveObserver(this); 560 drag_window_->RemoveObserver(this);
555 drag_window_ = NULL; 561 drag_window_ = NULL;
556 drag_data_ = NULL; 562 drag_data_ = NULL;
557 // Cleanup can be called again while deleting DragDropTracker, so use Pass 563 // Cleanup can be called again while deleting DragDropTracker, so use Pass
558 // instead of reset to avoid double free. 564 // instead of reset to avoid double free.
559 drag_drop_tracker_.Pass(); 565 drag_drop_tracker_.Pass();
560 } 566 }
561 567
562 } // namespace ash 568 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | cloud_print/virtual_driver/win/install/setup.cc » ('j') | google_apis/gcm/engine/mcs_client.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698