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

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

Issue 1638413007: Use list instead of pair to represent the set of displays. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix build error Created 4 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 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <stdio.h> 5 #include <stdio.h>
6 6
7 #include "ash/ash_switches.h" 7 #include "ash/ash_switches.h"
8 #include "ash/display/display_layout_store.h" 8 #include "ash/display/display_layout_store.h"
9 #include "ash/display/display_manager.h" 9 #include "ash/display/display_manager.h"
10 #include "ash/display/display_util.h" 10 #include "ash/display/display_util.h"
(...skipping 27 matching lines...) Expand all
38 38
39 DisplayLayoutStore::~DisplayLayoutStore() { 39 DisplayLayoutStore::~DisplayLayoutStore() {
40 } 40 }
41 41
42 void DisplayLayoutStore::SetDefaultDisplayLayout(const DisplayLayout& layout) { 42 void DisplayLayoutStore::SetDefaultDisplayLayout(const DisplayLayout& layout) {
43 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess(); 43 base::CommandLine* command_line = base::CommandLine::ForCurrentProcess();
44 if (!command_line->HasSwitch(switches::kAshSecondaryDisplayLayout)) 44 if (!command_line->HasSwitch(switches::kAshSecondaryDisplayLayout))
45 default_display_layout_ = layout; 45 default_display_layout_ = layout;
46 } 46 }
47 47
48 void DisplayLayoutStore::RegisterLayoutForDisplayIdPair( 48 void DisplayLayoutStore::RegisterLayoutForDisplayIdList(
49 int64_t id1, 49 int64_t id1,
50 int64_t id2, 50 int64_t id2,
51 const DisplayLayout& layout) { 51 const DisplayLayout& layout) {
52 auto key = CreateDisplayIdPair(id1, id2); 52 auto key = CreateDisplayIdList(id1, id2);
53 53
54 // Do not overwrite the valid data with old invalid date. 54 // Do not overwrite the valid data with old invalid date.
55 if (paired_layouts_.count(key) && !CompareDisplayIds(id1, id2)) 55 if (layouts_.count(key) && !CompareDisplayIds(id1, id2))
56 return; 56 return;
57 57
58 paired_layouts_[key] = layout; 58 layouts_[key] = layout;
59 } 59 }
60 60
61 DisplayLayout DisplayLayoutStore::GetRegisteredDisplayLayout( 61 DisplayLayout DisplayLayoutStore::GetRegisteredDisplayLayout(
62 const DisplayIdPair& pair) { 62 const DisplayIdList& list) {
63 std::map<DisplayIdPair, DisplayLayout>::const_iterator iter = 63 std::map<DisplayIdList, DisplayLayout>::const_iterator iter =
64 paired_layouts_.find(pair); 64 layouts_.find(list);
65 return 65 return iter != layouts_.end() ? iter->second : CreateDisplayLayout(list);
66 iter != paired_layouts_.end() ? iter->second : CreateDisplayLayout(pair);
67 } 66 }
68 67
69 DisplayLayout DisplayLayoutStore::ComputeDisplayLayoutForDisplayIdPair( 68 DisplayLayout DisplayLayoutStore::ComputeDisplayLayoutForDisplayIdList(
70 const DisplayIdPair& pair) { 69 const DisplayIdList& list) {
71 DisplayLayout layout = GetRegisteredDisplayLayout(pair); 70 DisplayLayout layout = GetRegisteredDisplayLayout(list);
72 DCHECK_NE(layout.primary_id, gfx::Display::kInvalidDisplayID); 71 DCHECK_NE(layout.primary_id, gfx::Display::kInvalidDisplayID);
73 // Invert if the primary was swapped. If mirrored, first is always 72 // Invert if the primary was swapped. If mirrored, first is always
74 // primary. 73 // primary.
75 return (layout.primary_id == gfx::Display::kInvalidDisplayID || 74 return (layout.primary_id == gfx::Display::kInvalidDisplayID ||
76 pair.first == layout.primary_id) ? layout : layout.Invert(); 75 list[0] == layout.primary_id)
76 ? layout
77 : layout.Invert();
77 } 78 }
78 79
79 void DisplayLayoutStore::UpdateMultiDisplayState(const DisplayIdPair& pair, 80 void DisplayLayoutStore::UpdateMultiDisplayState(const DisplayIdList& list,
80 bool mirrored, 81 bool mirrored,
81 bool default_unified) { 82 bool default_unified) {
82 if (paired_layouts_.find(pair) == paired_layouts_.end()) 83 if (layouts_.find(list) == layouts_.end())
83 CreateDisplayLayout(pair); 84 CreateDisplayLayout(list);
84 paired_layouts_[pair].mirrored = mirrored; 85 layouts_[list].mirrored = mirrored;
85 paired_layouts_[pair].default_unified = default_unified; 86 layouts_[list].default_unified = default_unified;
86 } 87 }
87 88
88 void DisplayLayoutStore::UpdatePrimaryDisplayId(const DisplayIdPair& pair, 89 void DisplayLayoutStore::UpdatePrimaryDisplayId(const DisplayIdList& list,
89 int64_t display_id) { 90 int64_t display_id) {
90 if (paired_layouts_.find(pair) == paired_layouts_.end()) 91 if (layouts_.find(list) == layouts_.end())
91 CreateDisplayLayout(pair); 92 CreateDisplayLayout(list);
92 paired_layouts_[pair].primary_id = display_id; 93 layouts_[list].primary_id = display_id;
93 } 94 }
94 95
95 DisplayLayout DisplayLayoutStore::CreateDisplayLayout( 96 DisplayLayout DisplayLayoutStore::CreateDisplayLayout(
96 const DisplayIdPair& pair) { 97 const DisplayIdList& list) {
97 DisplayLayout layout = default_display_layout_; 98 DisplayLayout layout = default_display_layout_;
98 layout.primary_id = pair.first; 99 layout.primary_id = list[0];
99 paired_layouts_[pair] = layout; 100 layouts_[list] = layout;
100 return layout; 101 return layout;
101 } 102 }
102 103
103 } // namespace ash 104 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698