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

Side by Side Diff: ui/app_list/views/apps_grid_view.cc

Issue 210583004: Make cancelling of app list correctly clean up folder UI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 8 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 | « ui/app_list/views/apps_grid_view.h ('k') | ui/app_list/views/apps_grid_view_folder_delegate.h » ('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 "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 304 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 315
316 DISALLOW_COPY_AND_ASSIGN(SynchronousDrag); 316 DISALLOW_COPY_AND_ASSIGN(SynchronousDrag);
317 }; 317 };
318 #endif // defined(OS_WIN) 318 #endif // defined(OS_WIN)
319 319
320 AppsGridView::AppsGridView(AppsGridViewDelegate* delegate, 320 AppsGridView::AppsGridView(AppsGridViewDelegate* delegate,
321 PaginationModel* pagination_model) 321 PaginationModel* pagination_model)
322 : model_(NULL), 322 : model_(NULL),
323 item_list_(NULL), 323 item_list_(NULL),
324 delegate_(delegate), 324 delegate_(delegate),
325 folder_delegate_(NULL),
325 pagination_model_(pagination_model), 326 pagination_model_(pagination_model),
326 page_switcher_view_(new PageSwitcher(pagination_model)), 327 page_switcher_view_(new PageSwitcher(pagination_model)),
327 cols_(0), 328 cols_(0),
328 rows_per_page_(0), 329 rows_per_page_(0),
329 selected_view_(NULL), 330 selected_view_(NULL),
330 drag_view_(NULL), 331 drag_view_(NULL),
331 drag_start_page_(-1), 332 drag_start_page_(-1),
332 drag_pointer_(NONE), 333 drag_pointer_(NONE),
333 drop_attempt_(DROP_FOR_NONE), 334 drop_attempt_(DROP_FOR_NONE),
334 drag_and_drop_host_(NULL), 335 drag_and_drop_host_(NULL),
335 forward_events_to_drag_and_drop_host_(false), 336 forward_events_to_drag_and_drop_host_(false),
336 page_flip_target_(-1), 337 page_flip_target_(-1),
337 page_flip_delay_in_ms_(kPageFlipDelayInMs), 338 page_flip_delay_in_ms_(kPageFlipDelayInMs),
338 bounds_animator_(this), 339 bounds_animator_(this),
339 is_root_level_(true),
340 activated_item_view_(NULL), 340 activated_item_view_(NULL),
341 dragging_for_reparent_item_(false), 341 dragging_for_reparent_item_(false),
342 weak_factory_(this) { 342 weak_factory_(this) {
343 SetPaintToLayer(true); 343 SetPaintToLayer(true);
344 SetFillsBoundsOpaquely(false); 344 SetFillsBoundsOpaquely(false);
345 345
346 pagination_model_->AddObserver(this); 346 pagination_model_->AddObserver(this);
347 AddChildView(page_switcher_view_); 347 AddChildView(page_switcher_view_);
348 } 348 }
349 349
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 synchronous_drag_->EndDragExternally(); 491 synchronous_drag_->EndDragExternally();
492 492
493 synchronous_drag_ = NULL; 493 synchronous_drag_ = NULL;
494 #endif 494 #endif
495 } 495 }
496 496
497 bool AppsGridView::UpdateDragFromItem(Pointer pointer, 497 bool AppsGridView::UpdateDragFromItem(Pointer pointer,
498 const ui::LocatedEvent& event) { 498 const ui::LocatedEvent& event) {
499 DCHECK(drag_view_); 499 DCHECK(drag_view_);
500 500
501 if (!is_root_level_) 501 if (folder_delegate_)
502 UpdateDragStateInsideFolder(pointer, event); 502 UpdateDragStateInsideFolder(pointer, event);
503 503
504 gfx::Point drag_point_in_grid_view; 504 gfx::Point drag_point_in_grid_view;
505 ExtractDragLocation(event, &drag_point_in_grid_view); 505 ExtractDragLocation(event, &drag_point_in_grid_view);
506 UpdateDrag(pointer, drag_point_in_grid_view); 506 UpdateDrag(pointer, drag_point_in_grid_view);
507 if (!dragging()) 507 if (!dragging())
508 return false; 508 return false;
509 509
510 // If a drag and drop host is provided, see if the drag operation needs to be 510 // If a drag and drop host is provided, see if the drag operation needs to be
511 // forwarded. 511 // forwarded.
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 // EndDrag was called before if |drag_view_| is NULL. 587 // EndDrag was called before if |drag_view_| is NULL.
588 if (!drag_view_) 588 if (!drag_view_)
589 return; 589 return;
590 590
591 // Coming here a drag and drop was in progress. 591 // Coming here a drag and drop was in progress.
592 bool landed_in_drag_and_drop_host = forward_events_to_drag_and_drop_host_; 592 bool landed_in_drag_and_drop_host = forward_events_to_drag_and_drop_host_;
593 if (forward_events_to_drag_and_drop_host_) { 593 if (forward_events_to_drag_and_drop_host_) {
594 DCHECK(!IsDraggingForReparentInRootLevelGridView()); 594 DCHECK(!IsDraggingForReparentInRootLevelGridView());
595 forward_events_to_drag_and_drop_host_ = false; 595 forward_events_to_drag_and_drop_host_ = false;
596 drag_and_drop_host_->EndDrag(cancel); 596 drag_and_drop_host_->EndDrag(cancel);
597 if (IsDraggingForReprentInHiddenGridView()) { 597 if (IsDraggingForReparentInHiddenGridView())
598 static_cast<AppListFolderView*>(parent())-> 598 folder_delegate_->DispatchEndDragEventForReparent(true);
599 DispatchEndDragEventForReparent(true);
600 }
601 } else if (!cancel && dragging()) { 599 } else if (!cancel && dragging()) {
602 if (IsDraggingForReprentInHiddenGridView()) { 600 if (IsDraggingForReparentInHiddenGridView()) {
603 // Forward the EndDrag event to the root level grid view. 601 // Forward the EndDrag event to the root level grid view.
604 static_cast<AppListFolderView*>(parent())-> 602 folder_delegate_->DispatchEndDragEventForReparent(false);
605 DispatchEndDragEventForReparent(false);
606 EndDragForReparentInHiddenFolderGridView(); 603 EndDragForReparentInHiddenFolderGridView();
607 return; 604 return;
608 } else { 605 } else {
609 // Regular drag ending path, ie, not for reparenting. 606 // Regular drag ending path, ie, not for reparenting.
610 CalculateDropTarget(last_drag_point_, true); 607 CalculateDropTarget(last_drag_point_, true);
611 if (IsValidIndex(drop_target_)) { 608 if (IsValidIndex(drop_target_)) {
612 if (!EnableFolderDragDropUI()) { 609 if (!EnableFolderDragDropUI()) {
613 MoveItemInModel(drag_view_, drop_target_); 610 MoveItemInModel(drag_view_, drop_target_);
614 } else { 611 } else {
615 if (drop_attempt_ == DROP_FOR_REORDER) 612 if (drop_attempt_ == DROP_FOR_REORDER)
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 drag_view_ = NULL; 647 drag_view_ = NULL;
651 drag_start_grid_view_ = gfx::Point(); 648 drag_start_grid_view_ = gfx::Point();
652 drag_start_page_ = -1; 649 drag_start_page_ = -1;
653 drag_view_offset_ = gfx::Point(); 650 drag_view_offset_ = gfx::Point();
654 AnimateToIdealBounds(); 651 AnimateToIdealBounds();
655 652
656 StopPageFlipTimer(); 653 StopPageFlipTimer();
657 654
658 // If user releases mouse inside a folder's grid view, burst the folder 655 // If user releases mouse inside a folder's grid view, burst the folder
659 // container ink bubble. 656 // container ink bubble.
660 if (!cancel && !is_root_level_ && !IsDraggingForReprentInHiddenGridView()) { 657 if (folder_delegate_ && !IsDraggingForReparentInHiddenGridView())
661 static_cast<AppListFolderView*>(parent())-> 658 folder_delegate_->UpdateFolderViewBackground(false);
662 UpdateFolderViewBackground(false);
663 }
664 659
665 if (IsDraggingForReprentInHiddenGridView()) 660 if (IsDraggingForReparentInHiddenGridView())
666 dragging_for_reparent_item_ = false; 661 dragging_for_reparent_item_ = false;
667 } 662 }
668 663
669 void AppsGridView::StopPageFlipTimer() { 664 void AppsGridView::StopPageFlipTimer() {
670 page_flip_timer_.Stop(); 665 page_flip_timer_.Stop();
671 page_flip_target_ = -1; 666 page_flip_target_ = -1;
672 } 667 }
673 668
674 AppListItemView* AppsGridView::GetItemViewAt(int index) const { 669 AppListItemView* AppsGridView::GetItemViewAt(int index) const {
675 DCHECK(index >= 0 && index < view_model_.view_size()); 670 DCHECK(index >= 0 && index < view_model_.view_size());
(...skipping 599 matching lines...) Expand 10 before | Expand all | Expand 10 after
1275 drop_target_ = GetNearestTileForDragView(); 1270 drop_target_ = GetNearestTileForDragView();
1276 } 1271 }
1277 } 1272 }
1278 1273
1279 void AppsGridView::OnReorderTimer() { 1274 void AppsGridView::OnReorderTimer() {
1280 if (drop_attempt_ == DROP_FOR_REORDER) 1275 if (drop_attempt_ == DROP_FOR_REORDER)
1281 AnimateToIdealBounds(); 1276 AnimateToIdealBounds();
1282 } 1277 }
1283 1278
1284 void AppsGridView::OnFolderItemReparentTimer() { 1279 void AppsGridView::OnFolderItemReparentTimer() {
1285 DCHECK(!is_root_level_); 1280 DCHECK(folder_delegate_);
1286 if (drag_out_of_folder_container_) { 1281 if (drag_out_of_folder_container_) {
1287 static_cast<AppListFolderView*>(parent())->ReparentItem( 1282 folder_delegate_->ReparentItem(drag_view_, last_drag_point_);
1288 drag_view_, last_drag_point_);
1289 1283
1290 // Set the flag in the folder's grid view. 1284 // Set the flag in the folder's grid view.
1291 dragging_for_reparent_item_ = true; 1285 dragging_for_reparent_item_ = true;
1292 1286
1293 // Do not observe any data change since it is going to be hidden. 1287 // Do not observe any data change since it is going to be hidden.
1294 item_list_->RemoveObserver(this); 1288 item_list_->RemoveObserver(this);
1295 item_list_ = NULL; 1289 item_list_ = NULL;
1296 } 1290 }
1297 } 1291 }
1298 1292
1299 void AppsGridView::OnFolderDroppingTimer() { 1293 void AppsGridView::OnFolderDroppingTimer() {
1300 if (drop_attempt_ == DROP_FOR_FOLDER) 1294 if (drop_attempt_ == DROP_FOR_FOLDER)
1301 SetAsFolderDroppingTarget(drop_target_, true); 1295 SetAsFolderDroppingTarget(drop_target_, true);
1302 } 1296 }
1303 1297
1304 void AppsGridView::UpdateDragStateInsideFolder( 1298 void AppsGridView::UpdateDragStateInsideFolder(
1305 Pointer pointer, 1299 Pointer pointer,
1306 const ui::LocatedEvent& event) { 1300 const ui::LocatedEvent& event) {
1307 if (IsUnderOEMFolder()) 1301 if (IsUnderOEMFolder())
1308 return; 1302 return;
1309 1303
1310 if (IsDraggingForReprentInHiddenGridView()) { 1304 if (IsDraggingForReparentInHiddenGridView()) {
1311 // Dispatch drag event to root level grid view for re-parenting folder 1305 // Dispatch drag event to root level grid view for re-parenting folder
1312 // folder item purpose. 1306 // folder item purpose.
1313 DispatchDragEventForReparent(pointer, event); 1307 DispatchDragEventForReparent(pointer, event);
1314 return; 1308 return;
1315 } 1309 }
1316 1310
1317 // Regular drag and drop in a folder's grid view. 1311 // Regular drag and drop in a folder's grid view.
1318 AppListFolderView* folder_view = static_cast<AppListFolderView*>(parent()); 1312 folder_delegate_->UpdateFolderViewBackground(true);
1319 folder_view->UpdateFolderViewBackground(true);
1320 1313
1321 // Calculate if the drag_view_ is dragged out of the folder's container 1314 // Calculate if the drag_view_ is dragged out of the folder's container
1322 // ink bubble. 1315 // ink bubble.
1323 gfx::Rect bounds_to_folder_view = ConvertRectToParent(drag_view_->bounds()); 1316 gfx::Rect bounds_to_folder_view = ConvertRectToParent(drag_view_->bounds());
1324 gfx::Point pt = bounds_to_folder_view.CenterPoint(); 1317 gfx::Point pt = bounds_to_folder_view.CenterPoint();
1325 bool is_item_dragged_out_of_folder = 1318 bool is_item_dragged_out_of_folder =
1326 folder_view->IsPointOutsideOfFolderBoundray(pt); 1319 folder_delegate_->IsPointOutsideOfFolderBoundary(pt);
1327 if (is_item_dragged_out_of_folder) { 1320 if (is_item_dragged_out_of_folder) {
1328 if (!drag_out_of_folder_container_) { 1321 if (!drag_out_of_folder_container_) {
1329 folder_item_reparent_timer_.Start(FROM_HERE, 1322 folder_item_reparent_timer_.Start(FROM_HERE,
1330 base::TimeDelta::FromMilliseconds(kFolderItemReparentDealy), 1323 base::TimeDelta::FromMilliseconds(kFolderItemReparentDealy),
1331 this, &AppsGridView::OnFolderItemReparentTimer); 1324 this, &AppsGridView::OnFolderItemReparentTimer);
1332 drag_out_of_folder_container_ = true; 1325 drag_out_of_folder_container_ = true;
1333 } 1326 }
1334 } else { 1327 } else {
1335 folder_item_reparent_timer_.Stop(); 1328 folder_item_reparent_timer_.Stop();
1336 drag_out_of_folder_container_ = false; 1329 drag_out_of_folder_container_ = false;
1337 } 1330 }
1338 } 1331 }
1339 1332
1340 bool AppsGridView::IsDraggingForReparentInRootLevelGridView() const { 1333 bool AppsGridView::IsDraggingForReparentInRootLevelGridView() const {
1341 return (is_root_level_ && dragging_for_reparent_item_); 1334 return (!folder_delegate_ && dragging_for_reparent_item_);
1342 } 1335 }
1343 1336
1344 bool AppsGridView::IsDraggingForReprentInHiddenGridView() const { 1337 bool AppsGridView::IsDraggingForReparentInHiddenGridView() const {
1345 return (!is_root_level_ && dragging_for_reparent_item_); 1338 return (folder_delegate_ && dragging_for_reparent_item_);
1346 } 1339 }
1347 1340
1348 gfx::Rect AppsGridView::GetTargetIconRectInFolder( 1341 gfx::Rect AppsGridView::GetTargetIconRectInFolder(
1349 AppListItemView* drag_item_view, 1342 AppListItemView* drag_item_view,
1350 AppListItemView* folder_item_view) { 1343 AppListItemView* folder_item_view) {
1351 gfx::Rect view_ideal_bounds = view_model_.ideal_bounds( 1344 gfx::Rect view_ideal_bounds = view_model_.ideal_bounds(
1352 view_model_.GetIndexOfView(folder_item_view)); 1345 view_model_.GetIndexOfView(folder_item_view));
1353 gfx::Rect icon_ideal_bounds = 1346 gfx::Rect icon_ideal_bounds =
1354 folder_item_view->GetIconBoundsForTargetViewBounds(view_ideal_bounds); 1347 folder_item_view->GetIconBoundsForTargetViewBounds(view_ideal_bounds);
1355 AppListFolderItem* folder_item = 1348 AppListFolderItem* folder_item =
1356 static_cast<AppListFolderItem*>(folder_item_view->item()); 1349 static_cast<AppListFolderItem*>(folder_item_view->item());
1357 return folder_item->GetTargetIconRectInFolderForItem( 1350 return folder_item->GetTargetIconRectInFolderForItem(
1358 drag_item_view->item(), icon_ideal_bounds); 1351 drag_item_view->item(), icon_ideal_bounds);
1359 } 1352 }
1360 1353
1361 bool AppsGridView::IsUnderOEMFolder() { 1354 bool AppsGridView::IsUnderOEMFolder() {
1362 if (is_root_level_) 1355 if (!folder_delegate_)
1363 return false; 1356 return false;
1364 1357
1365 return static_cast<AppListFolderView*>(parent())->IsOEMFolder(); 1358 return folder_delegate_->IsOEMFolder();
1366 } 1359 }
1367 1360
1368 void AppsGridView::DispatchDragEventForReparent( 1361 void AppsGridView::DispatchDragEventForReparent(
1369 Pointer pointer, 1362 Pointer pointer,
1370 const ui::LocatedEvent& event) { 1363 const ui::LocatedEvent& event) {
1371 static_cast<AppListFolderView*>(parent())-> 1364 folder_delegate_->DispatchDragEventForReparent(pointer, event);
1372 DispatchDragEventForReparent(pointer, event);
1373 } 1365 }
1374 1366
1375 void AppsGridView::EndDragFromReparentItemInRootLevel( 1367 void AppsGridView::EndDragFromReparentItemInRootLevel(
1376 bool events_forwarded_to_drag_drop_host) { 1368 bool events_forwarded_to_drag_drop_host) {
1377 // EndDrag was called before if |drag_view_| is NULL. 1369 // EndDrag was called before if |drag_view_| is NULL.
1378 if (!drag_view_) 1370 if (!drag_view_)
1379 return; 1371 return;
1380 1372
1381 DCHECK(IsDraggingForReparentInRootLevelGridView()); 1373 DCHECK(IsDraggingForReparentInRootLevelGridView());
1382 bool cancel_reparent = false; 1374 bool cancel_reparent = false;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1445 drop_target_ = Index(); 1437 drop_target_ = Index();
1446 drag_view_->OnDragEnded(); 1438 drag_view_->OnDragEnded();
1447 drag_view_ = NULL; 1439 drag_view_ = NULL;
1448 drag_start_grid_view_ = gfx::Point(); 1440 drag_start_grid_view_ = gfx::Point();
1449 drag_start_page_ = -1; 1441 drag_start_page_ = -1;
1450 drag_view_offset_ = gfx::Point(); 1442 drag_view_offset_ = gfx::Point();
1451 dragging_for_reparent_item_ = false; 1443 dragging_for_reparent_item_ = false;
1452 } 1444 }
1453 1445
1454 void AppsGridView::OnFolderItemRemoved() { 1446 void AppsGridView::OnFolderItemRemoved() {
1455 DCHECK(!is_root_level_); 1447 DCHECK(folder_delegate_);
1456 item_list_ = NULL; 1448 item_list_ = NULL;
1457 } 1449 }
1458 1450
1459 void AppsGridView::StartDragAndDropHostDrag(const gfx::Point& grid_location) { 1451 void AppsGridView::StartDragAndDropHostDrag(const gfx::Point& grid_location) {
1460 // When a drag and drop host is given, the item can be dragged out of the app 1452 // When a drag and drop host is given, the item can be dragged out of the app
1461 // list window. In that case a proxy widget needs to be used. 1453 // list window. In that case a proxy widget needs to be used.
1462 // Note: This code has very likely to be changed for Windows (non metro mode) 1454 // Note: This code has very likely to be changed for Windows (non metro mode)
1463 // when a |drag_and_drop_host_| gets implemented. 1455 // when a |drag_and_drop_host_| gets implemented.
1464 if (!drag_view_ || !drag_and_drop_host_) 1456 if (!drag_view_ || !drag_and_drop_host_)
1465 return; 1457 return;
(...skipping 356 matching lines...) Expand 10 before | Expand all | Expand 10 after
1822 1814
1823 void AppsGridView::OnListItemRemoved(size_t index, AppListItem* item) { 1815 void AppsGridView::OnListItemRemoved(size_t index, AppListItem* item) {
1824 EndDrag(true); 1816 EndDrag(true);
1825 1817
1826 views::View* view = view_model_.view_at(index); 1818 views::View* view = view_model_.view_at(index);
1827 view_model_.Remove(index); 1819 view_model_.Remove(index);
1828 delete view; 1820 delete view;
1829 1821
1830 // If there is only one item left under the folder, remove the folder. 1822 // If there is only one item left under the folder, remove the folder.
1831 // We do allow OEM folder to contain only one item. 1823 // We do allow OEM folder to contain only one item.
1832 if (!is_root_level_ && item_list_->item_count() == 1 && !IsUnderOEMFolder()) { 1824 if (folder_delegate_ && item_list_->item_count() == 1 &&
1825 !IsUnderOEMFolder()) {
1833 std::string folder_id = item_list_->item_at(0)->folder_id(); 1826 std::string folder_id = item_list_->item_at(0)->folder_id();
1834 // TODO(jennyz): Don't remove the folder if this is an OEM folder, this 1827 // TODO(jennyz): Don't remove the folder if this is an OEM folder, this
1835 // depends on https://codereview.chromium.org/197403005/. 1828 // depends on https://codereview.chromium.org/197403005/.
1836 // Post the delayed task to modify data, so that it won't break the atomic 1829 // Post the delayed task to modify data, so that it won't break the atomic
1837 // data operation in the data model of RemoveItemFromFolder which originates 1830 // data operation in the data model of RemoveItemFromFolder which originates
1838 // the OnListItemRemove when calling RemoveItem. 1831 // the OnListItemRemove when calling RemoveItem.
1839 base::MessageLoopForUI::current()->PostTask( 1832 base::MessageLoopForUI::current()->PostTask(
1840 FROM_HERE, 1833 FROM_HERE,
1841 base::Bind(&AppsGridView::RemoveFolderIfOnlyOneItemLeft, 1834 base::Bind(&AppsGridView::RemoveFolderIfOnlyOneItemLeft,
1842 weak_factory_.GetWeakPtr(), 1835 weak_factory_.GetWeakPtr(),
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
1903 } 1896 }
1904 1897
1905 void AppsGridView::OnImplicitAnimationsCompleted() { 1898 void AppsGridView::OnImplicitAnimationsCompleted() {
1906 if (layer()->opacity() == 0.0f) 1899 if (layer()->opacity() == 0.0f)
1907 SetVisible(false); 1900 SetVisible(false);
1908 } 1901 }
1909 1902
1910 bool AppsGridView::EnableFolderDragDropUI() { 1903 bool AppsGridView::EnableFolderDragDropUI() {
1911 // Enable drag and drop folder UI only if it is at the app list root level 1904 // Enable drag and drop folder UI only if it is at the app list root level
1912 // and the switch is on and the target folder can still accept new items. 1905 // and the switch is on and the target folder can still accept new items.
1913 return switches::IsFolderUIEnabled() && is_root_level_ && 1906 return switches::IsFolderUIEnabled() && !folder_delegate_ &&
1914 CanDropIntoTarget(drop_target_); 1907 CanDropIntoTarget(drop_target_);
1915 } 1908 }
1916 1909
1917 bool AppsGridView::CanDropIntoTarget(const Index& drop_target) { 1910 bool AppsGridView::CanDropIntoTarget(const Index& drop_target) {
1918 views::View* target_view = GetViewAtSlotOnCurrentPage(drop_target.slot); 1911 views::View* target_view = GetViewAtSlotOnCurrentPage(drop_target.slot);
1919 if (!target_view) 1912 if (!target_view)
1920 return true; 1913 return true;
1921 1914
1922 AppListItem* target_item = 1915 AppListItem* target_item =
1923 static_cast<AppListItemView*>(target_view)->item(); 1916 static_cast<AppListItemView*>(target_view)->item();
1924 // Items can be dropped into non-folders (which have no children) or folders 1917 // Items can be dropped into non-folders (which have no children) or folders
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
2093 void AppsGridView::SetAsFolderDroppingTarget(const Index& target_index, 2086 void AppsGridView::SetAsFolderDroppingTarget(const Index& target_index,
2094 bool is_target_folder) { 2087 bool is_target_folder) {
2095 AppListItemView* target_view = 2088 AppListItemView* target_view =
2096 static_cast<AppListItemView*>( 2089 static_cast<AppListItemView*>(
2097 GetViewAtSlotOnCurrentPage(target_index.slot)); 2090 GetViewAtSlotOnCurrentPage(target_index.slot));
2098 if (target_view) 2091 if (target_view)
2099 target_view->SetAsAttemptedFolderTarget(is_target_folder); 2092 target_view->SetAsAttemptedFolderTarget(is_target_folder);
2100 } 2093 }
2101 2094
2102 } // namespace app_list 2095 } // namespace app_list
OLDNEW
« no previous file with comments | « ui/app_list/views/apps_grid_view.h ('k') | ui/app_list/views/apps_grid_view_folder_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698