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

Side by Side Diff: ash/launcher/launcher_view.cc

Issue 14574009: Use correctly mirrored points for ideal bounds of launcher item icons. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Use INSTANTIATE_TEST_CASE_P Created 7 years, 6 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 | « no previous file | ash/launcher/launcher_view_unittest.cc » ('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 "ash/launcher/launcher_view.h" 5 #include "ash/launcher/launcher_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "ash/ash_constants.h" 9 #include "ash/ash_constants.h"
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after
465 gfx::Rect LauncherView::GetIdealBoundsOfItemIcon(LauncherID id) { 465 gfx::Rect LauncherView::GetIdealBoundsOfItemIcon(LauncherID id) {
466 int index = model_->ItemIndexByID(id); 466 int index = model_->ItemIndexByID(id);
467 if (index == -1 || (index > last_visible_index_ && 467 if (index == -1 || (index > last_visible_index_ &&
468 index < model_->FirstPanelIndex())) 468 index < model_->FirstPanelIndex()))
469 return gfx::Rect(); 469 return gfx::Rect();
470 const gfx::Rect& ideal_bounds(view_model_->ideal_bounds(index)); 470 const gfx::Rect& ideal_bounds(view_model_->ideal_bounds(index));
471 DCHECK_NE(TYPE_APP_LIST, model_->items()[index].type); 471 DCHECK_NE(TYPE_APP_LIST, model_->items()[index].type);
472 LauncherButton* button = 472 LauncherButton* button =
473 static_cast<LauncherButton*>(view_model_->view_at(index)); 473 static_cast<LauncherButton*>(view_model_->view_at(index));
474 gfx::Rect icon_bounds = button->GetIconBounds(); 474 gfx::Rect icon_bounds = button->GetIconBounds();
475 return gfx::Rect(ideal_bounds.x() + icon_bounds.x(), 475 return gfx::Rect(GetMirroredXWithWidthInView(
476 ideal_bounds.x() + icon_bounds.x(), icon_bounds.width()),
476 ideal_bounds.y() + icon_bounds.y(), 477 ideal_bounds.y() + icon_bounds.y(),
477 icon_bounds.width(), 478 icon_bounds.width(),
478 icon_bounds.height()); 479 icon_bounds.height());
479 } 480 }
480 481
481 void LauncherView::UpdatePanelIconPosition(LauncherID id, 482 void LauncherView::UpdatePanelIconPosition(LauncherID id,
482 const gfx::Point& midpoint) { 483 const gfx::Point& midpoint) {
483 int current_index = model_->ItemIndexByID(id); 484 int current_index = model_->ItemIndexByID(id);
484 int first_panel_index = model_->FirstPanelIndex(); 485 int first_panel_index = model_->FirstPanelIndex();
485 if (current_index < first_panel_index) 486 if (current_index < first_panel_index)
486 return; 487 return;
487 488
489 gfx::Point midpoint_in_view(GetMirroredXInView(midpoint.x()),
490 midpoint.y());
488 ShelfLayoutManager* shelf = tooltip_->shelf_layout_manager(); 491 ShelfLayoutManager* shelf = tooltip_->shelf_layout_manager();
489 int target_index = current_index; 492 int target_index = current_index;
490 while (target_index > first_panel_index && 493 while (target_index > first_panel_index &&
491 shelf->PrimaryAxisValue(view_model_->ideal_bounds(target_index).x(), 494 shelf->PrimaryAxisValue(view_model_->ideal_bounds(target_index).x(),
492 view_model_->ideal_bounds(target_index).y()) > 495 view_model_->ideal_bounds(target_index).y()) >
493 shelf->PrimaryAxisValue(midpoint.x(), midpoint.y())) { 496 shelf->PrimaryAxisValue(midpoint_in_view.x(), midpoint_in_view.y())) {
494 --target_index; 497 --target_index;
495 } 498 }
496 while (target_index < view_model_->view_size() - 1 && 499 while (target_index < view_model_->view_size() - 1 &&
497 shelf->PrimaryAxisValue( 500 shelf->PrimaryAxisValue(
498 view_model_->ideal_bounds(target_index).right(), 501 view_model_->ideal_bounds(target_index).right(),
499 view_model_->ideal_bounds(target_index).bottom()) < 502 view_model_->ideal_bounds(target_index).bottom()) <
500 shelf->PrimaryAxisValue(midpoint.x(), midpoint.y())) { 503 shelf->PrimaryAxisValue(midpoint_in_view.x(), midpoint_in_view.y())) {
501 ++target_index; 504 ++target_index;
502 } 505 }
503 if (current_index != target_index) 506 if (current_index != target_index)
504 model_->Move(current_index, target_index); 507 model_->Move(current_index, target_index);
505 } 508 }
506 509
507 bool LauncherView::IsShowingMenu() const { 510 bool LauncherView::IsShowingMenu() const {
508 #if !defined(OS_MACOSX) 511 #if !defined(OS_MACOSX)
509 return (launcher_menu_runner_.get() && 512 return (launcher_menu_runner_.get() &&
510 launcher_menu_runner_->IsRunning()); 513 launcher_menu_runner_->IsRunning());
(...skipping 1132 matching lines...) Expand 10 before | Expand all | Expand 10 after
1643 bool LauncherView::ShouldShowTooltipForView(const views::View* view) const { 1646 bool LauncherView::ShouldShowTooltipForView(const views::View* view) const {
1644 if (view == GetAppListButtonView() && 1647 if (view == GetAppListButtonView() &&
1645 Shell::GetInstance()->GetAppListWindow()) 1648 Shell::GetInstance()->GetAppListWindow())
1646 return false; 1649 return false;
1647 const LauncherItem* item = LauncherItemForView(view); 1650 const LauncherItem* item = LauncherItemForView(view);
1648 return (!item || delegate_->ShouldShowTooltip(*item)); 1651 return (!item || delegate_->ShouldShowTooltip(*item));
1649 } 1652 }
1650 1653
1651 } // namespace internal 1654 } // namespace internal
1652 } // namespace ash 1655 } // namespace ash
OLDNEW
« no previous file with comments | « no previous file | ash/launcher/launcher_view_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698