Commit 2810b248 authored by xiyuan@chromium.org's avatar xiyuan@chromium.org

app_list: Improve visual feedback for invalid touch scroll.

- Reduce col padding for invalid transition to 15px and use a 50px for first
  column;
- Fix a problem that invalid transition gets reset when touch scroll is more
  than 100%;

BUG=none.
TEST=Verify icon moves less when attempting touch scroll to an invalid page.  Also invalid move is not abruptly reset in the middle while dragging the touch.

R=sky@chromium.org


Review URL: https://chromiumcodereview.appspot.com/10832255

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151174 0039d316-1c4b-4281-b951-d872f2087c98
parent a56e7000
......@@ -25,7 +25,11 @@ const int kPreferredTileWidth = 88;
const int kPreferredTileHeight = 98;
// Max extra column padding space in pixels for invalid page transition.
const int kMaxExtraColPaddingForInvalidTransition = 80;
const int kMaxExtraColPaddingForInvalidTransition = 15;
// Extra column padding space in pixels of first column for invalid page
// transition.
const int kBaseExtraColPaddingForInvalidTransition = 50;
} // namespace
......@@ -129,6 +133,8 @@ void AppsGridView::Layout() {
const int transition_offset = is_valid ?
transition.progress * page_width * dir :
transition.progress * kMaxExtraColPaddingForInvalidTransition * dir;
const int base_transition_offset = is_valid ? 0 :
transition.progress * kBaseExtraColPaddingForInvalidTransition * dir;
const int first_visible_index = current_page * tiles_per_page();
const int last_visible_index = (current_page + 1) * tiles_per_page() - 1;
......@@ -149,10 +155,11 @@ void AppsGridView::Layout() {
x_offset += transition_offset;
} else {
const int col = i % cols_;
x_offset += base_transition_offset;
if (transition_offset > 0)
x_offset += transition_offset * (col + 1);
x_offset += transition_offset * col;
else
x_offset += transition_offset * (cols_ - col);
x_offset += transition_offset * (cols_ - col - 1);
}
gfx::Rect adjusted_slot(tile_slot);
......
......@@ -114,9 +114,10 @@ void PaginationModel::UpdateScroll(double delta) {
if (progress < 0) {
clear_transition();
} else if (progress > 1) {
if (is_valid_page(transition_.target_page))
if (is_valid_page(transition_.target_page)) {
SelectPage(transition_.target_page, false);
clear_transition();
}
} else {
transition_.progress = progress;
NotifyTransitionChanged();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment