summaryrefslogtreecommitdiffstats
path: root/ui/app_list
diff options
context:
space:
mode:
authorskuhne@google.com <skuhne@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-04 01:05:15 +0000
committerskuhne@google.com <skuhne@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-04 01:05:15 +0000
commitf6d04eb544ace564d7600434bc3c923818f0dd6b (patch)
tree46c4f6a2c14a24044c6bf1b2d801d3dc98630949 /ui/app_list
parentb1d9add44f1a12d2c2bd83d2b008403657d2172e (diff)
downloadchromium_src-f6d04eb544ace564d7600434bc3c923818f0dd6b.zip
chromium_src-f6d04eb544ace564d7600434bc3c923818f0dd6b.tar.gz
chromium_src-f6d04eb544ace564d7600434bc3c923818f0dd6b.tar.bz2
Made the EndDrag logic clearer by using |drag_view_| as Drag state.
BUG=246116 TEST=none R=xiyuan@chromium.org Review URL: https://codereview.chromium.org/16295012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@203806 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/app_list')
-rw-r--r--ui/app_list/views/apps_grid_view.cc20
1 files changed, 13 insertions, 7 deletions
diff --git a/ui/app_list/views/apps_grid_view.cc b/ui/app_list/views/apps_grid_view.cc
index f825000..c957fc1 100644
--- a/ui/app_list/views/apps_grid_view.cc
+++ b/ui/app_list/views/apps_grid_view.cc
@@ -192,6 +192,7 @@ void AppsGridView::EnsureViewVisible(const views::View* view) {
void AppsGridView::InitiateDrag(AppListItemView* view,
Pointer pointer,
const ui::LocatedEvent& event) {
+ DCHECK(view);
if (drag_view_ || pulsing_blocks_model_.view_size())
return;
@@ -222,8 +223,11 @@ void AppsGridView::InitiateDrag(AppListItemView* view,
void AppsGridView::UpdateDrag(AppListItemView* view,
Pointer pointer,
const ui::LocatedEvent& event) {
- if (!dragging() && drag_view_ &&
- ExceededDragThreshold(event.location() - drag_start_)) {
+ // EndDrag was called before if |drag_view_| is NULL.
+ if (!drag_view_)
+ return;
+
+ if (!dragging() && ExceededDragThreshold(event.location() - drag_start_)) {
drag_pointer_ = pointer;
// Move the view to the front so that it appears on top of other views.
ReorderChildView(drag_view_, -1);
@@ -258,10 +262,14 @@ void AppsGridView::UpdateDrag(AppListItemView* view,
}
void AppsGridView::EndDrag(bool cancel) {
+ // EndDrag was called before if |drag_view_| is NULL.
+ if (!drag_view_)
+ return;
+
if (forward_events_to_drag_and_drop_host_) {
forward_events_to_drag_and_drop_host_ = false;
drag_and_drop_host_->EndDrag(cancel);
- } else if (!cancel && dragging() && drag_view_) {
+ } else if (!cancel && dragging()) {
CalculateDropTarget(last_drag_point_, true);
if (IsValidIndex(drop_target_))
MoveItemInModel(drag_view_, drop_target_);
@@ -276,10 +284,8 @@ void AppsGridView::EndDrag(bool cancel) {
drag_pointer_ = NONE;
drop_target_ = Index();
- if (drag_view_) {
- drag_view_ = NULL;
- AnimateToIdealBounds();
- }
+ drag_view_ = NULL;
+ AnimateToIdealBounds();
page_flip_timer_.Stop();
page_flip_target_ = -1;