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

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

Issue 12377035: Remove GetOutputNames from x11_util (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 9 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_change_observer_x11.cc ('k') | ui/base/x/x11_util.h » ('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_manager.h" 5 #include "ash/display/display_manager.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "ash/ash_switches.h" 10 #include "ash/ash_switches.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 bool operator()(const DisplayInfo& a, const DisplayInfo& b) { 70 bool operator()(const DisplayInfo& a, const DisplayInfo& b) {
71 return a.id() < b.id(); 71 return a.id() < b.id();
72 } 72 }
73 }; 73 };
74 74
75 gfx::Display& GetInvalidDisplay() { 75 gfx::Display& GetInvalidDisplay() {
76 static gfx::Display* invalid_display = new gfx::Display(); 76 static gfx::Display* invalid_display = new gfx::Display();
77 return *invalid_display; 77 return *invalid_display;
78 } 78 }
79 79
80 #if defined(OS_CHROMEOS)
81
82 int64 FindInternalDisplayID() {
83 std::vector<XID> outputs;
84 ui::GetOutputDeviceHandles(&outputs);
85 std::vector<std::string> output_names = ui::GetOutputNames(outputs);
86 for (size_t i = 0; i < output_names.size(); ++i) {
87 if (chromeos::OutputConfigurator::IsInternalOutputName(
88 output_names[i])) {
89 uint16 manufacturer_id = 0;
90 uint16 product_code = 0;
91 ui::GetOutputDeviceData(
92 outputs[i], &manufacturer_id, &product_code, NULL);
93 return gfx::Display::GetID(manufacturer_id, product_code, i);
94 }
95 }
96 return gfx::Display::kInvalidDisplayID;
97 }
98
99 #endif
100
101 } // namespace 80 } // namespace
102 81
103 using aura::RootWindow; 82 using aura::RootWindow;
104 using aura::Window; 83 using aura::Window;
105 using std::string; 84 using std::string;
106 using std::vector; 85 using std::vector;
107 86
108 DEFINE_WINDOW_PROPERTY_KEY(int64, kDisplayIdKey, 87 DEFINE_WINDOW_PROPERTY_KEY(int64, kDisplayIdKey,
109 gfx::Display::kInvalidDisplayID); 88 gfx::Display::kInvalidDisplayID);
110 89
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after
470 if (display.size() != root->GetHostSize()) { 449 if (display.size() != root->GetHostSize()) {
471 display.SetSize(root->GetHostSize()); 450 display.SetSize(root->GetHostSize());
472 display_info_[display.id()].UpdateBounds( 451 display_info_[display.id()].UpdateBounds(
473 gfx::Rect(root->GetHostOrigin(), root->GetHostSize())); 452 gfx::Rect(root->GetHostOrigin(), root->GetHostSize()));
474 Shell::GetInstance()->screen()->NotifyBoundsChanged(display); 453 Shell::GetInstance()->screen()->NotifyBoundsChanged(display);
475 } 454 }
476 } 455 }
477 } 456 }
478 457
479 void DisplayManager::Init() { 458 void DisplayManager::Init() {
480 #if defined(OS_CHROMEOS)
481 if (base::chromeos::IsRunningOnChromeOS())
482 gfx::Display::SetInternalDisplayId(FindInternalDisplayID());
483 #endif
484
485 // TODO(oshima): Move this logic to DisplayChangeObserver. 459 // TODO(oshima): Move this logic to DisplayChangeObserver.
486 const string size_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII( 460 const string size_str = CommandLine::ForCurrentProcess()->GetSwitchValueASCII(
487 switches::kAshHostWindowBounds); 461 switches::kAshHostWindowBounds);
488 vector<string> parts; 462 vector<string> parts;
489 base::SplitString(size_str, ',', &parts); 463 base::SplitString(size_str, ',', &parts);
490 for (vector<string>::const_iterator iter = parts.begin(); 464 for (vector<string>::const_iterator iter = parts.begin();
491 iter != parts.end(); ++iter) { 465 iter != parts.end(); ++iter) {
492 AddDisplayFromSpec(*iter); 466 AddDisplayFromSpec(*iter);
493 } 467 }
494 if (displays_.empty()) 468 if (displays_.empty())
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 // to change there. 590 // to change there.
617 if (DisplayController::HasPrimaryDisplay() && 591 if (DisplayController::HasPrimaryDisplay() &&
618 display_info.id() == DisplayController::GetPrimaryDisplay().id()) { 592 display_info.id() == DisplayController::GetPrimaryDisplay().id()) {
619 new_display.set_bounds(gfx::Rect(new_display.bounds().size())); 593 new_display.set_bounds(gfx::Rect(new_display.bounds().size()));
620 } 594 }
621 return new_display; 595 return new_display;
622 } 596 }
623 597
624 } // namespace internal 598 } // namespace internal
625 } // namespace ash 599 } // namespace ash
OLDNEW
« no previous file with comments | « ash/display/display_change_observer_x11.cc ('k') | ui/base/x/x11_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698