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

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

Issue 17099003: Use primary display as hangout/gtalk broadcast window (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: 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 | Annotate | Revision Log
« no previous file with comments | « ash/display/display_controller.h ('k') | ash/display/display_controller_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/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 443 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 } 454 }
455 } 455 }
456 if (display_manager->GetNumDisplays() > 1) { 456 if (display_manager->GetNumDisplays() > 1) {
457 UpdateDisplayBoundsForLayout(); 457 UpdateDisplayBoundsForLayout();
458 DisplayIdPair pair = GetCurrentDisplayIdPair(); 458 DisplayIdPair pair = GetCurrentDisplayIdPair();
459 DisplayLayout layout = GetCurrentDisplayLayout(); 459 DisplayLayout layout = GetCurrentDisplayLayout();
460 SetPrimaryDisplayId( 460 SetPrimaryDisplayId(
461 layout.primary_id == gfx::Display::kInvalidDisplayID ? 461 layout.primary_id == gfx::Display::kInvalidDisplayID ?
462 pair.first : layout.primary_id); 462 pair.first : layout.primary_id);
463 } 463 }
464 UpdateHostWindowNames();
464 } 465 }
465 466
466 void DisplayController::AddObserver(Observer* observer) { 467 void DisplayController::AddObserver(Observer* observer) {
467 observers_.AddObserver(observer); 468 observers_.AddObserver(observer);
468 } 469 }
469 470
470 void DisplayController::RemoveObserver(Observer* observer) { 471 void DisplayController::RemoveObserver(Observer* observer) {
471 observers_.RemoveObserver(observer); 472 observers_.RemoveObserver(observer);
472 } 473 }
473 474
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after
1010 primary_id == gfx::Display::kInvalidDisplayID ? 1011 primary_id == gfx::Display::kInvalidDisplayID ?
1011 pair.first : primary_id); 1012 pair.first : primary_id);
1012 // Update the primary_id in case the above call is 1013 // Update the primary_id in case the above call is
1013 // ignored. Happens when a) default layout's primary id 1014 // ignored. Happens when a) default layout's primary id
1014 // doesn't exist, or b) the primary_id has already been 1015 // doesn't exist, or b) the primary_id has already been
1015 // set to the same and didn't update it. 1016 // set to the same and didn't update it.
1016 paired_layouts_[pair].primary_id = GetPrimaryDisplay().id(); 1017 paired_layouts_[pair].primary_id = GetPrimaryDisplay().id();
1017 } 1018 }
1018 } 1019 }
1019 FOR_EACH_OBSERVER(Observer, observers_, OnDisplayConfigurationChanged()); 1020 FOR_EACH_OBSERVER(Observer, observers_, OnDisplayConfigurationChanged());
1021 UpdateHostWindowNames();
1020 } 1022 }
1021 1023
1022 void DisplayController::RegisterLayoutForDisplayIdPairInternal( 1024 void DisplayController::RegisterLayoutForDisplayIdPairInternal(
1023 int64 id1, 1025 int64 id1,
1024 int64 id2, 1026 int64 id2,
1025 const DisplayLayout& layout, 1027 const DisplayLayout& layout,
1026 bool override) { 1028 bool override) {
1027 DisplayIdPair pair = std::make_pair(id1, id2); 1029 DisplayIdPair pair = std::make_pair(id1, id2);
1028 if (override || paired_layouts_.find(pair) == paired_layouts_.end()) 1030 if (override || paired_layouts_.find(pair) == paired_layouts_.end())
1029 paired_layouts_[pair] = layout; 1031 paired_layouts_[pair] = layout;
1030 } 1032 }
1031 1033
1032 void DisplayController::OnFadeOutForSwapDisplayFinished() { 1034 void DisplayController::OnFadeOutForSwapDisplayFinished() {
1033 #if defined(OS_CHROMEOS) && defined(USE_X11) 1035 #if defined(OS_CHROMEOS) && defined(USE_X11)
1034 SetPrimaryDisplay(ScreenAsh::GetSecondaryDisplay()); 1036 SetPrimaryDisplay(ScreenAsh::GetSecondaryDisplay());
1035 Shell::GetInstance()->output_configurator_animation()->StartFadeInAnimation(); 1037 Shell::GetInstance()->output_configurator_animation()->StartFadeInAnimation();
1036 #endif 1038 #endif
1037 } 1039 }
1038 1040
1041 void DisplayController::UpdateHostWindowNames() {
1042 #if defined(USE_X11)
1043 // crbug.com/120229 - set the window title for the primary dislpay
1044 // to "aura_root_0" so gtalk can find the primary root window to broadcast.
1045 // TODO(jhorwich) Remove this once Chrome supports window-based broadcasting.
1046 aura::RootWindow* primary = Shell::GetPrimaryRootWindow();
1047 Shell::RootWindowList root_windows = Shell::GetAllRootWindows();
1048 for (size_t i = 0; i < root_windows.size(); ++i) {
1049 std::string name =
1050 root_windows[i] == primary ? "aura_root_0" : "aura_root_x";
1051 gfx::AcceleratedWidget xwindow = root_windows[i]->GetAcceleratedWidget();
1052 XStoreName(ui::GetXDisplay(), xwindow, name.c_str());
1053 }
1054 #endif
1055 }
1056
1039 } // namespace ash 1057 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_controller.h ('k') | ash/display/display_controller_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698