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

Side by Side Diff: ash/display/display_controller.cc

Issue 948583005: Add more tests for mouse rotation,scale&position after display change (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
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/display/display_controller.h" 5 #include "ash/display/display_controller.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 #include <map> 9 #include <map>
10 10
(...skipping 518 matching lines...) Expand 10 before | Expand all | Expand 10 after
529 std::vector<DisplayInfo> display_info_list; 529 std::vector<DisplayInfo> display_info_list;
530 display_info_list.push_back(display_manager->GetDisplayInfo( 530 display_info_list.push_back(display_manager->GetDisplayInfo(
531 primary_display_id)); 531 primary_display_id));
532 display_info_list.push_back(display_manager->GetDisplayInfo( 532 display_info_list.push_back(display_manager->GetDisplayInfo(
533 ScreenUtil::GetSecondaryDisplay().id())); 533 ScreenUtil::GetSecondaryDisplay().id()));
534 GetDisplayManager()->set_force_bounds_changed(true); 534 GetDisplayManager()->set_force_bounds_changed(true);
535 GetDisplayManager()->UpdateDisplays(display_info_list); 535 GetDisplayManager()->UpdateDisplays(display_info_list);
536 GetDisplayManager()->set_force_bounds_changed(false); 536 GetDisplayManager()->set_force_bounds_changed(false);
537 } 537 }
538 538
539 void DisplayController::EnsurePointerInDisplays() { 539 void DisplayController::UpdateMouseLocationAfterDisplayChange() {
pkotwicz 2015/02/24 18:38:08 I renamed this method because you mentioned in htt
540 // If the mouse is currently on a display in native location, 540 // If the mouse is currently on a display in native location,
541 // use the same native location. Otherwise find the display closest 541 // use the same native location. Otherwise find the display closest
542 // to the current cursor location in screen coordinates. 542 // to the current cursor location in screen coordinates.
543 543
544 gfx::Point point_in_screen = Shell::GetScreen()->GetCursorScreenPoint(); 544 gfx::Point point_in_screen = Shell::GetScreen()->GetCursorScreenPoint();
545 gfx::Point target_location_in_native; 545 gfx::Point target_location_in_native;
546 int64 closest_distance_squared = -1; 546 int64 closest_distance_squared = -1;
547 DisplayManager* display_manager = GetDisplayManager(); 547 DisplayManager* display_manager = GetDisplayManager();
548 548
549 aura::Window* dst_root_window = NULL; 549 aura::Window* dst_root_window = NULL;
(...skipping 194 matching lines...) Expand 10 before | Expand all | Expand 10 after
744 // Update the primary_id in case the above call is 744 // Update the primary_id in case the above call is
745 // ignored. Happens when a) default layout's primary id 745 // ignored. Happens when a) default layout's primary id
746 // doesn't exist, or b) the primary_id has already been 746 // doesn't exist, or b) the primary_id has already been
747 // set to the same and didn't update it. 747 // set to the same and didn't update it.
748 layout_store->UpdatePrimaryDisplayId( 748 layout_store->UpdatePrimaryDisplayId(
749 pair, Shell::GetScreen()->GetPrimaryDisplay().id()); 749 pair, Shell::GetScreen()->GetPrimaryDisplay().id());
750 } 750 }
751 } 751 }
752 FOR_EACH_OBSERVER(Observer, observers_, OnDisplayConfigurationChanged()); 752 FOR_EACH_OBSERVER(Observer, observers_, OnDisplayConfigurationChanged());
753 UpdateHostWindowNames(); 753 UpdateHostWindowNames();
754 EnsurePointerInDisplays(); 754 UpdateMouseLocationAfterDisplayChange();
755 } 755 }
756 756
757 AshWindowTreeHost* DisplayController::AddWindowTreeHostForDisplay( 757 AshWindowTreeHost* DisplayController::AddWindowTreeHostForDisplay(
758 const gfx::Display& display, 758 const gfx::Display& display,
759 const AshWindowTreeHostInitParams& init_params) { 759 const AshWindowTreeHostInitParams& init_params) {
760 static int host_count = 0; 760 static int host_count = 0;
761 const DisplayInfo& display_info = 761 const DisplayInfo& display_info =
762 GetDisplayManager()->GetDisplayInfo(display.id()); 762 GetDisplayManager()->GetDisplayInfo(display.id());
763 AshWindowTreeHostInitParams params_with_bounds(init_params); 763 AshWindowTreeHostInitParams params_with_bounds(init_params);
764 params_with_bounds.initial_bounds = display_info.bounds_in_native(); 764 params_with_bounds.initial_bounds = display_info.bounds_in_native();
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
810 std::string name = 810 std::string name =
811 root_windows[i] == primary ? "aura_root_0" : "aura_root_x"; 811 root_windows[i] == primary ? "aura_root_0" : "aura_root_x";
812 gfx::AcceleratedWidget xwindow = 812 gfx::AcceleratedWidget xwindow =
813 root_windows[i]->GetHost()->GetAcceleratedWidget(); 813 root_windows[i]->GetHost()->GetAcceleratedWidget();
814 XStoreName(gfx::GetXDisplay(), xwindow, name.c_str()); 814 XStoreName(gfx::GetXDisplay(), xwindow, name.c_str());
815 } 815 }
816 #endif 816 #endif
817 } 817 }
818 818
819 } // namespace ash 819 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698