summaryrefslogtreecommitdiffstats
path: root/ui/display
diff options
context:
space:
mode:
authordnicoara <dnicoara@chromium.org>2014-10-22 10:34:54 -0700
committerCommit bot <commit-bot@chromium.org>2014-10-22 17:35:14 +0000
commit7f1ee85f22b425e81947bc454531fc4668ef5e52 (patch)
tree319df9cd73aac3b099fd8f40442be12102ffa7c6 /ui/display
parente904389b66f7b5a76c64c7d80919bf639ff9fc86 (diff)
downloadchromium_src-7f1ee85f22b425e81947bc454531fc4668ef5e52.zip
chromium_src-7f1ee85f22b425e81947bc454531fc4668ef5e52.tar.gz
chromium_src-7f1ee85f22b425e81947bc454531fc4668ef5e52.tar.bz2
Treat displays with and without EDID the same way
Treating displays without EDID specially results in exiting mirror mode every time a display configuration operation happens. BUG=413278 Review URL: https://codereview.chromium.org/667753002 Cr-Commit-Position: refs/heads/master@{#300694}
Diffstat (limited to 'ui/display')
-rw-r--r--ui/display/chromeos/display_configurator.cc22
-rw-r--r--ui/display/chromeos/display_configurator_unittest.cc15
-rw-r--r--ui/display/chromeos/test/test_display_snapshot.cc3
-rw-r--r--ui/display/chromeos/test/test_display_snapshot.h4
-rw-r--r--ui/display/chromeos/x11/display_snapshot_x11.cc2
-rw-r--r--ui/display/chromeos/x11/display_snapshot_x11.h1
-rw-r--r--ui/display/chromeos/x11/native_display_delegate_x11.cc16
-rw-r--r--ui/display/chromeos/x11/native_display_event_dispatcher_x11_unittest.cc1
-rw-r--r--ui/display/types/display_snapshot.cc2
-rw-r--r--ui/display/types/display_snapshot.h3
10 files changed, 12 insertions, 57 deletions
diff --git a/ui/display/chromeos/display_configurator.cc b/ui/display/chromeos/display_configurator.cc
index 3194636..03a63d0 100644
--- a/ui/display/chromeos/display_configurator.cc
+++ b/ui/display/chromeos/display_configurator.cc
@@ -579,15 +579,14 @@ void DisplayConfigurator::UpdateCachedDisplays() {
// Set |selected_mode| fields.
for (size_t i = 0; i < cached_displays_.size(); ++i) {
DisplayState* display_state = &cached_displays_[i];
- if (display_state->display->has_proper_display_id()) {
- gfx::Size size;
- if (state_controller_ &&
- state_controller_->GetResolutionForDisplayId(
- display_state->display->display_id(), &size)) {
- display_state->selected_mode =
- FindDisplayModeMatchingSize(*display_state->display, size);
- }
+ gfx::Size size;
+ if (state_controller_ &&
+ state_controller_->GetResolutionForDisplayId(
+ display_state->display->display_id(), &size)) {
+ display_state->selected_mode =
+ FindDisplayModeMatchingSize(*display_state->display, size);
}
+
// Fall back to native mode.
if (!display_state->selected_mode)
display_state->selected_mode = display_state->display->native_mode();
@@ -960,12 +959,9 @@ MultipleDisplayState DisplayConfigurator::ChooseDisplayState(
// With either both displays on or both displays off, use one of the
// dual modes.
std::vector<int64_t> display_ids;
- for (size_t i = 0; i < cached_displays_.size(); ++i) {
- // If display id isn't available, switch to extended mode.
- if (!cached_displays_[i].display->has_proper_display_id())
- return MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED;
+ for (size_t i = 0; i < cached_displays_.size(); ++i)
display_ids.push_back(cached_displays_[i].display->display_id());
- }
+
return state_controller_->GetStateForDisplayIds(display_ids);
}
}
diff --git a/ui/display/chromeos/display_configurator_unittest.cc b/ui/display/chromeos/display_configurator_unittest.cc
index aecaddd..0254d6a 100644
--- a/ui/display/chromeos/display_configurator_unittest.cc
+++ b/ui/display/chromeos/display_configurator_unittest.cc
@@ -359,7 +359,6 @@ class DisplayConfiguratorTest : public testing::Test {
o->set_type(DISPLAY_CONNECTION_TYPE_INTERNAL);
o->set_is_aspect_preserving_scaling(true);
o->set_display_id(123);
- o->set_has_proper_display_id(true);
o = &outputs_[1];
o->set_current_mode(&big_mode_);
@@ -369,7 +368,6 @@ class DisplayConfiguratorTest : public testing::Test {
o->set_type(DISPLAY_CONNECTION_TYPE_HDMI);
o->set_is_aspect_preserving_scaling(true);
o->set_display_id(456);
- o->set_has_proper_display_id(true);
UpdateOutputs(2, false);
}
@@ -1004,18 +1002,7 @@ TEST_F(DisplayConfiguratorTest, InvalidMultipleDisplayStates) {
EXPECT_EQ(2, observer_.num_failures());
}
-TEST_F(DisplayConfiguratorTest, GetMultipleDisplayStateForDisplaysWithoutId) {
- outputs_[0].set_has_proper_display_id(false);
- UpdateOutputs(2, false);
- configurator_.Init(false);
- state_controller_.set_state(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR);
- configurator_.ForceInitialConfigure(0);
- EXPECT_EQ(MULTIPLE_DISPLAY_STATE_DUAL_EXTENDED,
- configurator_.display_state());
-}
-
-TEST_F(DisplayConfiguratorTest, GetMultipleDisplayStateForDisplaysWithId) {
- outputs_[0].set_has_proper_display_id(true);
+TEST_F(DisplayConfiguratorTest, GetMultipleDisplayStateForMirroredDisplays) {
UpdateOutputs(2, false);
configurator_.Init(false);
state_controller_.set_state(MULTIPLE_DISPLAY_STATE_DUAL_MIRROR);
diff --git a/ui/display/chromeos/test/test_display_snapshot.cc b/ui/display/chromeos/test/test_display_snapshot.cc
index b7eba9a..227e6f4 100644
--- a/ui/display/chromeos/test/test_display_snapshot.cc
+++ b/ui/display/chromeos/test/test_display_snapshot.cc
@@ -7,7 +7,6 @@
namespace ui {
TestDisplaySnapshot::TestDisplaySnapshot()
: DisplaySnapshot(0,
- false,
gfx::Point(0, 0),
gfx::Size(0, 0),
DISPLAY_CONNECTION_TYPE_UNKNOWN,
@@ -20,7 +19,6 @@ TestDisplaySnapshot::TestDisplaySnapshot()
TestDisplaySnapshot::TestDisplaySnapshot(
int64_t display_id,
- bool has_proper_display_id,
const gfx::Point& origin,
const gfx::Size& physical_size,
DisplayConnectionType type,
@@ -29,7 +27,6 @@ TestDisplaySnapshot::TestDisplaySnapshot(
const DisplayMode* current_mode,
const DisplayMode* native_mode)
: DisplaySnapshot(display_id,
- has_proper_display_id,
origin,
physical_size,
type,
diff --git a/ui/display/chromeos/test/test_display_snapshot.h b/ui/display/chromeos/test/test_display_snapshot.h
index 95653ca..5691c89 100644
--- a/ui/display/chromeos/test/test_display_snapshot.h
+++ b/ui/display/chromeos/test/test_display_snapshot.h
@@ -14,7 +14,6 @@ class DISPLAY_EXPORT TestDisplaySnapshot : public DisplaySnapshot {
public:
TestDisplaySnapshot();
TestDisplaySnapshot(int64_t display_id,
- bool has_proper_display_id,
const gfx::Point& origin,
const gfx::Size& physical_size,
DisplayConnectionType type,
@@ -34,9 +33,6 @@ class DISPLAY_EXPORT TestDisplaySnapshot : public DisplaySnapshot {
is_aspect_preserving_scaling_ = state;
}
void set_display_id(int64_t id) { display_id_ = id; }
- void set_has_proper_display_id(bool has_display_id) {
- has_proper_display_id_ = has_display_id;
- }
// DisplaySnapshot overrides:
virtual std::string ToString() const override;
diff --git a/ui/display/chromeos/x11/display_snapshot_x11.cc b/ui/display/chromeos/x11/display_snapshot_x11.cc
index 52c4ba7..bb3e6105 100644
--- a/ui/display/chromeos/x11/display_snapshot_x11.cc
+++ b/ui/display/chromeos/x11/display_snapshot_x11.cc
@@ -11,7 +11,6 @@ namespace ui {
DisplaySnapshotX11::DisplaySnapshotX11(
int64_t display_id,
- bool has_proper_display_id,
const gfx::Point& origin,
const gfx::Size& physical_size,
DisplayConnectionType type,
@@ -25,7 +24,6 @@ DisplaySnapshotX11::DisplaySnapshotX11(
RRCrtc crtc,
int index)
: DisplaySnapshot(display_id,
- has_proper_display_id,
origin,
physical_size,
type,
diff --git a/ui/display/chromeos/x11/display_snapshot_x11.h b/ui/display/chromeos/x11/display_snapshot_x11.h
index 50128b4..35b5f68 100644
--- a/ui/display/chromeos/x11/display_snapshot_x11.h
+++ b/ui/display/chromeos/x11/display_snapshot_x11.h
@@ -18,7 +18,6 @@ namespace ui {
class DISPLAY_EXPORT DisplaySnapshotX11 : public DisplaySnapshot {
public:
DisplaySnapshotX11(int64_t display_id,
- bool has_proper_display_id,
const gfx::Point& origin,
const gfx::Size& physical_size,
DisplayConnectionType type,
diff --git a/ui/display/chromeos/x11/native_display_delegate_x11.cc b/ui/display/chromeos/x11/native_display_delegate_x11.cc
index 50dc322..42d4961 100644
--- a/ui/display/chromeos/x11/native_display_delegate_x11.cc
+++ b/ui/display/chromeos/x11/native_display_delegate_x11.cc
@@ -308,8 +308,8 @@ DisplaySnapshotX11* NativeDisplayDelegateX11::InitDisplaySnapshot(
RRCrtc* last_used_crtc,
int index) {
int64_t display_id = 0;
- bool has_display_id = GetDisplayId(
- output, static_cast<uint8_t>(index), &display_id);
+ if (!GetDisplayId(output, static_cast<uint8_t>(index), &display_id))
+ display_id = index;
bool has_overscan = false;
GetOutputOverscanFlag(output, &has_overscan);
@@ -318,17 +318,6 @@ DisplaySnapshotX11* NativeDisplayDelegateX11::InitDisplaySnapshot(
if (type == DISPLAY_CONNECTION_TYPE_UNKNOWN)
LOG(ERROR) << "Unknown link type: " << info->name;
- // Use the index as a valid display ID even if the internal
- // display doesn't have valid EDID because the index
- // will never change.
- if (!has_display_id) {
- if (type == DISPLAY_CONNECTION_TYPE_INTERNAL)
- has_display_id = true;
-
- // Fallback to output index.
- display_id = index;
- }
-
RRMode native_mode_id = GetOutputNativeMode(info);
RRMode current_mode_id = None;
gfx::Point origin;
@@ -369,7 +358,6 @@ DisplaySnapshotX11* NativeDisplayDelegateX11::InitDisplaySnapshot(
DisplaySnapshotX11* display_snapshot =
new DisplaySnapshotX11(display_id,
- has_display_id,
origin,
gfx::Size(info->mm_width, info->mm_height),
type,
diff --git a/ui/display/chromeos/x11/native_display_event_dispatcher_x11_unittest.cc b/ui/display/chromeos/x11/native_display_event_dispatcher_x11_unittest.cc
index 45bca9f..de87796 100644
--- a/ui/display/chromeos/x11/native_display_event_dispatcher_x11_unittest.cc
+++ b/ui/display/chromeos/x11/native_display_event_dispatcher_x11_unittest.cc
@@ -24,7 +24,6 @@ DisplaySnapshotX11* CreateOutput(RROutput output, RRCrtc crtc) {
DisplaySnapshotX11* snapshot = new DisplaySnapshotX11(
0,
- false,
gfx::Point(0, 0),
gfx::Size(0, 0),
DISPLAY_CONNECTION_TYPE_UNKNOWN,
diff --git a/ui/display/types/display_snapshot.cc b/ui/display/types/display_snapshot.cc
index efe401b..38e42b2 100644
--- a/ui/display/types/display_snapshot.cc
+++ b/ui/display/types/display_snapshot.cc
@@ -7,7 +7,6 @@
namespace ui {
DisplaySnapshot::DisplaySnapshot(int64_t display_id,
- bool has_proper_display_id,
const gfx::Point& origin,
const gfx::Size& physical_size,
DisplayConnectionType type,
@@ -18,7 +17,6 @@ DisplaySnapshot::DisplaySnapshot(int64_t display_id,
const DisplayMode* current_mode,
const DisplayMode* native_mode)
: display_id_(display_id),
- has_proper_display_id_(has_proper_display_id),
origin_(origin),
physical_size_(physical_size),
type_(type),
diff --git a/ui/display/types/display_snapshot.h b/ui/display/types/display_snapshot.h
index 7019208..e0dcc7b 100644
--- a/ui/display/types/display_snapshot.h
+++ b/ui/display/types/display_snapshot.h
@@ -20,7 +20,6 @@ namespace ui {
class DISPLAY_TYPES_EXPORT DisplaySnapshot {
public:
DisplaySnapshot(int64_t display_id,
- bool has_proper_display_id,
const gfx::Point& origin,
const gfx::Size& physical_size,
DisplayConnectionType type,
@@ -42,7 +41,6 @@ class DISPLAY_TYPES_EXPORT DisplaySnapshot {
std::string display_name() const { return display_name_; }
int64_t display_id() const { return display_id_; }
- bool has_proper_display_id() const { return has_proper_display_id_; }
const DisplayMode* current_mode() const { return current_mode_; }
const DisplayMode* native_mode() const { return native_mode_; }
@@ -59,7 +57,6 @@ class DISPLAY_TYPES_EXPORT DisplaySnapshot {
protected:
// Display id for this output.
int64_t display_id_;
- bool has_proper_display_id_;
// Display's origin on the framebuffer.
gfx::Point origin_;