Chromium Code Reviews| 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 "ui/app_list/views/apps_grid_view.h" | 5 #include "ui/app_list/views/apps_grid_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <string> | 9 #include <string> |
| 10 | 10 |
| (...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 309 DISALLOW_COPY_AND_ASSIGN(SynchronousDrag); | 309 DISALLOW_COPY_AND_ASSIGN(SynchronousDrag); |
| 310 }; | 310 }; |
| 311 #endif // defined(OS_WIN) | 311 #endif // defined(OS_WIN) |
| 312 | 312 |
| 313 AppsGridView::AppsGridView(AppsGridViewDelegate* delegate, | 313 AppsGridView::AppsGridView(AppsGridViewDelegate* delegate, |
| 314 PaginationModel* pagination_model, | 314 PaginationModel* pagination_model, |
| 315 content::WebContents* start_page_contents) | 315 content::WebContents* start_page_contents) |
| 316 : model_(NULL), | 316 : model_(NULL), |
| 317 item_list_(NULL), | 317 item_list_(NULL), |
| 318 delegate_(delegate), | 318 delegate_(delegate), |
| 319 folder_delegate_(NULL), | |
| 319 pagination_model_(pagination_model), | 320 pagination_model_(pagination_model), |
| 320 page_switcher_view_(new PageSwitcher(pagination_model)), | 321 page_switcher_view_(new PageSwitcher(pagination_model)), |
| 321 start_page_view_(NULL), | 322 start_page_view_(NULL), |
| 322 cols_(0), | 323 cols_(0), |
| 323 rows_per_page_(0), | 324 rows_per_page_(0), |
| 324 selected_view_(NULL), | 325 selected_view_(NULL), |
| 325 drag_view_(NULL), | 326 drag_view_(NULL), |
| 326 drag_start_page_(-1), | 327 drag_start_page_(-1), |
| 327 drag_pointer_(NONE), | 328 drag_pointer_(NONE), |
| 328 drop_attempt_(DROP_FOR_NONE), | 329 drop_attempt_(DROP_FOR_NONE), |
| 329 drag_and_drop_host_(NULL), | 330 drag_and_drop_host_(NULL), |
| 330 forward_events_to_drag_and_drop_host_(false), | 331 forward_events_to_drag_and_drop_host_(false), |
| 331 page_flip_target_(-1), | 332 page_flip_target_(-1), |
| 332 page_flip_delay_in_ms_(kPageFlipDelayInMs), | 333 page_flip_delay_in_ms_(kPageFlipDelayInMs), |
| 333 bounds_animator_(this), | 334 bounds_animator_(this), |
| 334 is_root_level_(true), | |
| 335 activated_item_view_(NULL), | 335 activated_item_view_(NULL), |
| 336 dragging_for_reparent_item_(false) { | 336 dragging_for_reparent_item_(false) { |
| 337 SetPaintToLayer(true); | 337 SetPaintToLayer(true); |
| 338 SetFillsBoundsOpaquely(false); | 338 SetFillsBoundsOpaquely(false); |
| 339 | 339 |
| 340 pagination_model_->AddObserver(this); | 340 pagination_model_->AddObserver(this); |
| 341 AddChildView(page_switcher_view_); | 341 AddChildView(page_switcher_view_); |
| 342 | 342 |
| 343 if (start_page_contents) { | 343 if (start_page_contents) { |
| 344 start_page_view_ = | 344 start_page_view_ = |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 492 synchronous_drag_->EndDragExternally(); | 492 synchronous_drag_->EndDragExternally(); |
| 493 | 493 |
| 494 synchronous_drag_ = NULL; | 494 synchronous_drag_ = NULL; |
| 495 #endif | 495 #endif |
| 496 } | 496 } |
| 497 | 497 |
| 498 bool AppsGridView::UpdateDragFromItem(Pointer pointer, | 498 bool AppsGridView::UpdateDragFromItem(Pointer pointer, |
| 499 const ui::LocatedEvent& event) { | 499 const ui::LocatedEvent& event) { |
| 500 DCHECK(drag_view_); | 500 DCHECK(drag_view_); |
| 501 | 501 |
| 502 if (!is_root_level_) | 502 if (folder_delegate_) |
| 503 UpdateDragStateInsideFolder(pointer, event); | 503 UpdateDragStateInsideFolder(pointer, event); |
| 504 | 504 |
| 505 gfx::Point drag_point_in_grid_view; | 505 gfx::Point drag_point_in_grid_view; |
| 506 ExtractDragLocation(event, &drag_point_in_grid_view); | 506 ExtractDragLocation(event, &drag_point_in_grid_view); |
| 507 UpdateDrag(pointer, drag_point_in_grid_view); | 507 UpdateDrag(pointer, drag_point_in_grid_view); |
| 508 if (!dragging()) | 508 if (!dragging()) |
| 509 return false; | 509 return false; |
| 510 | 510 |
| 511 // If a drag and drop host is provided, see if the drag operation needs to be | 511 // If a drag and drop host is provided, see if the drag operation needs to be |
| 512 // forwarded. | 512 // forwarded. |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 588 // EndDrag was called before if |drag_view_| is NULL. | 588 // EndDrag was called before if |drag_view_| is NULL. |
| 589 if (!drag_view_) | 589 if (!drag_view_) |
| 590 return; | 590 return; |
| 591 | 591 |
| 592 // Coming here a drag and drop was in progress. | 592 // Coming here a drag and drop was in progress. |
| 593 bool landed_in_drag_and_drop_host = forward_events_to_drag_and_drop_host_; | 593 bool landed_in_drag_and_drop_host = forward_events_to_drag_and_drop_host_; |
| 594 if (forward_events_to_drag_and_drop_host_) { | 594 if (forward_events_to_drag_and_drop_host_) { |
| 595 DCHECK(!IsDraggingForReparentInRootLevelGridView()); | 595 DCHECK(!IsDraggingForReparentInRootLevelGridView()); |
| 596 forward_events_to_drag_and_drop_host_ = false; | 596 forward_events_to_drag_and_drop_host_ = false; |
| 597 drag_and_drop_host_->EndDrag(cancel); | 597 drag_and_drop_host_->EndDrag(cancel); |
| 598 if (IsDraggingForReprentInHiddenGridView()) { | 598 if (IsDraggingForReprentInHiddenGridView()) { |
|
tapted
2014/03/26 02:53:54
nit: doesn't need curlies
calamity
2014/03/27 05:14:44
Done.
| |
| 599 static_cast<AppListFolderView*>(parent())-> | 599 folder_delegate_->DispatchEndDragEventForReparent(true); |
| 600 DispatchEndDragEventForReparent(true); | |
| 601 } | 600 } |
| 602 } else if (!cancel && dragging()) { | 601 } else if (!cancel && dragging()) { |
| 603 if (IsDraggingForReprentInHiddenGridView()) { | 602 if (IsDraggingForReprentInHiddenGridView()) { |
| 604 // Forward the EndDrag event to the root level grid view. | 603 // Forward the EndDrag event to the root level grid view. |
| 605 static_cast<AppListFolderView*>(parent())-> | 604 folder_delegate_->DispatchEndDragEventForReparent(false); |
| 606 DispatchEndDragEventForReparent(false); | |
| 607 EndDragForReparentInHiddenFolderGridView(); | 605 EndDragForReparentInHiddenFolderGridView(); |
| 608 return; | 606 return; |
| 609 } else { | 607 } else { |
| 610 // Regular drag ending path, ie, not for reparenting. | 608 // Regular drag ending path, ie, not for reparenting. |
| 611 CalculateDropTarget(last_drag_point_, true); | 609 CalculateDropTarget(last_drag_point_, true); |
| 612 if (IsValidIndex(drop_target_)) { | 610 if (IsValidIndex(drop_target_)) { |
| 613 if (!EnableFolderDragDropUI()) { | 611 if (!EnableFolderDragDropUI()) { |
| 614 MoveItemInModel(drag_view_, drop_target_); | 612 MoveItemInModel(drag_view_, drop_target_); |
| 615 } else { | 613 } else { |
| 616 if (drop_attempt_ == DROP_FOR_REORDER) | 614 if (drop_attempt_ == DROP_FOR_REORDER) |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 651 drag_view_ = NULL; | 649 drag_view_ = NULL; |
| 652 drag_start_grid_view_ = gfx::Point(); | 650 drag_start_grid_view_ = gfx::Point(); |
| 653 drag_start_page_ = -1; | 651 drag_start_page_ = -1; |
| 654 drag_view_offset_ = gfx::Point(); | 652 drag_view_offset_ = gfx::Point(); |
| 655 AnimateToIdealBounds(); | 653 AnimateToIdealBounds(); |
| 656 | 654 |
| 657 StopPageFlipTimer(); | 655 StopPageFlipTimer(); |
| 658 | 656 |
| 659 // If user releases mouse inside a folder's grid view, burst the folder | 657 // If user releases mouse inside a folder's grid view, burst the folder |
| 660 // container ink bubble. | 658 // container ink bubble. |
| 661 if (!cancel && !is_root_level_ && !IsDraggingForReprentInHiddenGridView()) { | 659 if (folder_delegate_ && !IsDraggingForReprentInHiddenGridView()) |
|
tapted
2014/03/26 02:53:54
there's a typo in this function name: Reprent -> R
jennyz
2014/03/26 22:09:38
This change will crash chrome on chromeos, since t
calamity
2014/03/27 05:14:44
Done.
calamity
2014/03/27 05:14:44
Cool, thanks for fixing that.
| |
| 662 static_cast<AppListFolderView*>(parent())-> | 660 folder_delegate_->UpdateFolderViewBackground(false); |
| 663 UpdateFolderViewBackground(false); | |
| 664 } | |
| 665 | 661 |
| 666 if (IsDraggingForReprentInHiddenGridView()) | 662 if (IsDraggingForReprentInHiddenGridView()) |
| 667 dragging_for_reparent_item_ = false; | 663 dragging_for_reparent_item_ = false; |
| 668 } | 664 } |
| 669 | 665 |
| 670 void AppsGridView::StopPageFlipTimer() { | 666 void AppsGridView::StopPageFlipTimer() { |
| 671 page_flip_timer_.Stop(); | 667 page_flip_timer_.Stop(); |
| 672 page_flip_target_ = -1; | 668 page_flip_target_ = -1; |
| 673 } | 669 } |
| 674 | 670 |
| (...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1289 drop_target_ = GetNearestTileForDragView(); | 1285 drop_target_ = GetNearestTileForDragView(); |
| 1290 } | 1286 } |
| 1291 } | 1287 } |
| 1292 | 1288 |
| 1293 void AppsGridView::OnReorderTimer() { | 1289 void AppsGridView::OnReorderTimer() { |
| 1294 if (drop_attempt_ == DROP_FOR_REORDER) | 1290 if (drop_attempt_ == DROP_FOR_REORDER) |
| 1295 AnimateToIdealBounds(); | 1291 AnimateToIdealBounds(); |
| 1296 } | 1292 } |
| 1297 | 1293 |
| 1298 void AppsGridView::OnFolderItemReparentTimer() { | 1294 void AppsGridView::OnFolderItemReparentTimer() { |
| 1299 DCHECK(!is_root_level_); | 1295 DCHECK(folder_delegate_); |
| 1300 if (drag_out_of_folder_container_) { | 1296 if (drag_out_of_folder_container_) { |
| 1301 static_cast<AppListFolderView*>(parent())->ReparentItem( | 1297 folder_delegate_->ReparentItem(drag_view_, last_drag_point_); |
| 1302 drag_view_, last_drag_point_); | |
| 1303 | 1298 |
| 1304 // Set the flag in the folder's grid view. | 1299 // Set the flag in the folder's grid view. |
| 1305 dragging_for_reparent_item_ = true; | 1300 dragging_for_reparent_item_ = true; |
| 1306 | 1301 |
| 1307 // Do not observe any data change since it is going to be hidden. | 1302 // Do not observe any data change since it is going to be hidden. |
| 1308 item_list_->RemoveObserver(this); | 1303 item_list_->RemoveObserver(this); |
| 1309 item_list_ = NULL; | 1304 item_list_ = NULL; |
| 1310 } | 1305 } |
| 1311 } | 1306 } |
| 1312 | 1307 |
| 1313 void AppsGridView::OnFolderDroppingTimer() { | 1308 void AppsGridView::OnFolderDroppingTimer() { |
| 1314 if (drop_attempt_ == DROP_FOR_FOLDER) | 1309 if (drop_attempt_ == DROP_FOR_FOLDER) |
| 1315 SetAsFolderDroppingTarget(drop_target_, true); | 1310 SetAsFolderDroppingTarget(drop_target_, true); |
| 1316 } | 1311 } |
| 1317 | 1312 |
| 1318 void AppsGridView::UpdateDragStateInsideFolder( | 1313 void AppsGridView::UpdateDragStateInsideFolder( |
| 1319 Pointer pointer, | 1314 Pointer pointer, |
| 1320 const ui::LocatedEvent& event) { | 1315 const ui::LocatedEvent& event) { |
| 1321 if (IsDraggingForReprentInHiddenGridView()) { | 1316 if (IsDraggingForReprentInHiddenGridView()) { |
| 1322 // Dispatch drag event to root level grid view for re-parenting folder | 1317 // Dispatch drag event to root level grid view for re-parenting folder |
| 1323 // folder item purpose. | 1318 // folder item purpose. |
| 1324 DispatchDragEventForReparent(pointer, event); | 1319 DispatchDragEventForReparent(pointer, event); |
| 1325 return; | 1320 return; |
| 1326 } | 1321 } |
| 1327 | 1322 |
| 1328 // Regular drag and drop in a folder's grid view. | 1323 // Regular drag and drop in a folder's grid view. |
| 1329 AppListFolderView* folder_view = static_cast<AppListFolderView*>(parent()); | 1324 folder_delegate_->UpdateFolderViewBackground(true); |
| 1330 folder_view->UpdateFolderViewBackground(true); | |
| 1331 | 1325 |
| 1332 // Calculate if the drag_view_ is dragged out of the folder's container | 1326 // Calculate if the drag_view_ is dragged out of the folder's container |
| 1333 // ink bubble. | 1327 // ink bubble. |
| 1334 gfx::Rect bounds_to_folder_view = ConvertRectToParent(drag_view_->bounds()); | 1328 gfx::Rect bounds_to_folder_view = ConvertRectToParent(drag_view_->bounds()); |
| 1335 gfx::Point pt = bounds_to_folder_view.CenterPoint(); | 1329 gfx::Point pt = bounds_to_folder_view.CenterPoint(); |
| 1336 bool is_item_dragged_out_of_folder = | 1330 bool is_item_dragged_out_of_folder = |
| 1337 folder_view->IsPointOutsideOfFolderBoundray(pt); | 1331 folder_delegate_->IsPointOutsideOfFolderBoundary(pt); |
| 1338 if (is_item_dragged_out_of_folder) { | 1332 if (is_item_dragged_out_of_folder) { |
| 1339 if (!drag_out_of_folder_container_) { | 1333 if (!drag_out_of_folder_container_) { |
| 1340 folder_item_reparent_timer_.Start(FROM_HERE, | 1334 folder_item_reparent_timer_.Start(FROM_HERE, |
| 1341 base::TimeDelta::FromMilliseconds(kFolderItemReparentDealy), | 1335 base::TimeDelta::FromMilliseconds(kFolderItemReparentDealy), |
| 1342 this, &AppsGridView::OnFolderItemReparentTimer); | 1336 this, &AppsGridView::OnFolderItemReparentTimer); |
| 1343 drag_out_of_folder_container_ = true; | 1337 drag_out_of_folder_container_ = true; |
| 1344 } | 1338 } |
| 1345 } else { | 1339 } else { |
| 1346 folder_item_reparent_timer_.Stop(); | 1340 folder_item_reparent_timer_.Stop(); |
| 1347 drag_out_of_folder_container_ = false; | 1341 drag_out_of_folder_container_ = false; |
| 1348 } | 1342 } |
| 1349 } | 1343 } |
| 1350 | 1344 |
| 1351 bool AppsGridView::IsDraggingForReparentInRootLevelGridView() const { | 1345 bool AppsGridView::IsDraggingForReparentInRootLevelGridView() const { |
| 1352 return (is_root_level_ && dragging_for_reparent_item_); | 1346 return (!folder_delegate_ && dragging_for_reparent_item_); |
| 1353 } | 1347 } |
| 1354 | 1348 |
| 1355 bool AppsGridView::IsDraggingForReprentInHiddenGridView() const { | 1349 bool AppsGridView::IsDraggingForReprentInHiddenGridView() const { |
| 1356 return (!is_root_level_ && dragging_for_reparent_item_); | 1350 return (folder_delegate_ && dragging_for_reparent_item_); |
| 1357 } | 1351 } |
| 1358 | 1352 |
| 1359 gfx::Rect AppsGridView::GetTargetIconRectInFolder( | 1353 gfx::Rect AppsGridView::GetTargetIconRectInFolder( |
| 1360 AppListItemView* drag_item_view, | 1354 AppListItemView* drag_item_view, |
| 1361 AppListItemView* folder_item_view) { | 1355 AppListItemView* folder_item_view) { |
| 1362 gfx::Rect view_ideal_bounds = view_model_.ideal_bounds( | 1356 gfx::Rect view_ideal_bounds = view_model_.ideal_bounds( |
| 1363 view_model_.GetIndexOfView(folder_item_view)); | 1357 view_model_.GetIndexOfView(folder_item_view)); |
| 1364 gfx::Rect icon_ideal_bounds = | 1358 gfx::Rect icon_ideal_bounds = |
| 1365 folder_item_view->GetIconBoundsForTargetViewBounds(view_ideal_bounds); | 1359 folder_item_view->GetIconBoundsForTargetViewBounds(view_ideal_bounds); |
| 1366 AppListFolderItem* folder_item = | 1360 AppListFolderItem* folder_item = |
| 1367 static_cast<AppListFolderItem*>(folder_item_view->item()); | 1361 static_cast<AppListFolderItem*>(folder_item_view->item()); |
| 1368 return folder_item->GetTargetIconRectInFolderForItem( | 1362 return folder_item->GetTargetIconRectInFolderForItem( |
| 1369 drag_item_view->item(), icon_ideal_bounds); | 1363 drag_item_view->item(), icon_ideal_bounds); |
| 1370 } | 1364 } |
| 1371 | 1365 |
| 1372 void AppsGridView::DispatchDragEventForReparent( | 1366 void AppsGridView::DispatchDragEventForReparent( |
| 1373 Pointer pointer, | 1367 Pointer pointer, |
| 1374 const ui::LocatedEvent& event) { | 1368 const ui::LocatedEvent& event) { |
| 1375 static_cast<AppListFolderView*>(parent())-> | 1369 folder_delegate_->DispatchDragEventForReparent(pointer, event); |
| 1376 DispatchDragEventForReparent(pointer, event); | |
| 1377 } | 1370 } |
| 1378 | 1371 |
| 1379 void AppsGridView::EndDragFromReparentItemInRootLevel( | 1372 void AppsGridView::EndDragFromReparentItemInRootLevel( |
| 1380 bool events_forwarded_to_drag_drop_host) { | 1373 bool events_forwarded_to_drag_drop_host) { |
| 1381 // EndDrag was called before if |drag_view_| is NULL. | 1374 // EndDrag was called before if |drag_view_| is NULL. |
| 1382 if (!drag_view_) | 1375 if (!drag_view_) |
| 1383 return; | 1376 return; |
| 1384 | 1377 |
| 1385 DCHECK(IsDraggingForReparentInRootLevelGridView()); | 1378 DCHECK(IsDraggingForReparentInRootLevelGridView()); |
| 1386 bool cancel_reparent = false; | 1379 bool cancel_reparent = false; |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1449 drop_target_ = Index(); | 1442 drop_target_ = Index(); |
| 1450 drag_view_->OnDragEnded(); | 1443 drag_view_->OnDragEnded(); |
| 1451 drag_view_ = NULL; | 1444 drag_view_ = NULL; |
| 1452 drag_start_grid_view_ = gfx::Point(); | 1445 drag_start_grid_view_ = gfx::Point(); |
| 1453 drag_start_page_ = -1; | 1446 drag_start_page_ = -1; |
| 1454 drag_view_offset_ = gfx::Point(); | 1447 drag_view_offset_ = gfx::Point(); |
| 1455 dragging_for_reparent_item_ = false; | 1448 dragging_for_reparent_item_ = false; |
| 1456 } | 1449 } |
| 1457 | 1450 |
| 1458 void AppsGridView::OnFolderItemRemoved() { | 1451 void AppsGridView::OnFolderItemRemoved() { |
| 1459 DCHECK(!is_root_level_); | 1452 DCHECK(folder_delegate_); |
| 1460 item_list_ = NULL; | 1453 item_list_ = NULL; |
| 1461 } | 1454 } |
| 1462 | 1455 |
| 1463 void AppsGridView::StartDragAndDropHostDrag(const gfx::Point& grid_location) { | 1456 void AppsGridView::StartDragAndDropHostDrag(const gfx::Point& grid_location) { |
| 1464 // When a drag and drop host is given, the item can be dragged out of the app | 1457 // When a drag and drop host is given, the item can be dragged out of the app |
| 1465 // list window. In that case a proxy widget needs to be used. | 1458 // list window. In that case a proxy widget needs to be used. |
| 1466 // Note: This code has very likely to be changed for Windows (non metro mode) | 1459 // Note: This code has very likely to be changed for Windows (non metro mode) |
| 1467 // when a |drag_and_drop_host_| gets implemented. | 1460 // when a |drag_and_drop_host_| gets implemented. |
| 1468 if (!drag_view_ || !drag_and_drop_host_) | 1461 if (!drag_view_ || !drag_and_drop_host_) |
| 1469 return; | 1462 return; |
| (...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1893 } | 1886 } |
| 1894 | 1887 |
| 1895 void AppsGridView::OnImplicitAnimationsCompleted() { | 1888 void AppsGridView::OnImplicitAnimationsCompleted() { |
| 1896 if (layer()->opacity() == 0.0f) | 1889 if (layer()->opacity() == 0.0f) |
| 1897 SetVisible(false); | 1890 SetVisible(false); |
| 1898 } | 1891 } |
| 1899 | 1892 |
| 1900 bool AppsGridView::EnableFolderDragDropUI() { | 1893 bool AppsGridView::EnableFolderDragDropUI() { |
| 1901 // Enable drag and drop folder UI only if it is at the app list root level | 1894 // Enable drag and drop folder UI only if it is at the app list root level |
| 1902 // and the switch is on and the target folder can still accept new items. | 1895 // and the switch is on and the target folder can still accept new items. |
| 1903 return switches::IsFolderUIEnabled() && is_root_level_ && | 1896 return switches::IsFolderUIEnabled() && !folder_delegate_ && |
| 1904 CanDropIntoTarget(drop_target_); | 1897 CanDropIntoTarget(drop_target_); |
| 1905 } | 1898 } |
| 1906 | 1899 |
| 1907 bool AppsGridView::CanDropIntoTarget(const Index& drop_target) { | 1900 bool AppsGridView::CanDropIntoTarget(const Index& drop_target) { |
| 1908 views::View* target_view = GetViewAtSlotOnCurrentPage(drop_target.slot); | 1901 views::View* target_view = GetViewAtSlotOnCurrentPage(drop_target.slot); |
| 1909 if (!target_view) | 1902 if (!target_view) |
| 1910 return true; | 1903 return true; |
| 1911 | 1904 |
| 1912 AppListItem* target_item = | 1905 AppListItem* target_item = |
| 1913 static_cast<AppListItemView*>(target_view)->item(); | 1906 static_cast<AppListItemView*>(target_view)->item(); |
| 1914 // Items can be dropped into non-folders (which have no children) or folders | 1907 // Items can be dropped into non-folders (which have no children) or folders |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2081 void AppsGridView::SetAsFolderDroppingTarget(const Index& target_index, | 2074 void AppsGridView::SetAsFolderDroppingTarget(const Index& target_index, |
| 2082 bool is_target_folder) { | 2075 bool is_target_folder) { |
| 2083 AppListItemView* target_view = | 2076 AppListItemView* target_view = |
| 2084 static_cast<AppListItemView*>( | 2077 static_cast<AppListItemView*>( |
| 2085 GetViewAtSlotOnCurrentPage(target_index.slot)); | 2078 GetViewAtSlotOnCurrentPage(target_index.slot)); |
| 2086 if (target_view) | 2079 if (target_view) |
| 2087 target_view->SetAsAttemptedFolderTarget(is_target_folder); | 2080 target_view->SetAsAttemptedFolderTarget(is_target_folder); |
| 2088 } | 2081 } |
| 2089 | 2082 |
| 2090 } // namespace app_list | 2083 } // namespace app_list |
| OLD | NEW |