Index: monitor_reconfigure_main.cc |
diff --git a/monitor_reconfigure_main.cc b/monitor_reconfigure_main.cc |
index 64c7058fdb4f9edb5b3362f808470728f57882ae..664b05f33d279248c0e66c60441724c9f70d0ea4 100644 |
--- a/monitor_reconfigure_main.cc |
+++ b/monitor_reconfigure_main.cc |
@@ -52,14 +52,20 @@ void MonitorReconfigureMain::Run() { |
&lcd_resolution, |
&external_resolution, |
&screen_resolution)); |
+ CHECK(!lcd_resolution.empty() || !external_resolution.empty()); |
- SetDeviceResolution(lcd_output_->name, lcd_resolution); |
+ // Disable the LCD if we were told to do so (because we're using a higher |
+ // resolution that'd be clipped on the LCD). |
+ if (!lcd_resolution.empty()) |
+ SetDeviceResolution(lcd_output_->name, lcd_resolution); |
+ else |
+ DisableDevice(lcd_output_->name); |
// If there's no external output connected, disable the device before we try |
// to set the screen resolution; otherwise xrandr will complain if we're |
// trying to set the screen to a smaller size than what the now-unplugged |
// device was using. |
- if (IsExternalMonitorConnected()) |
+ if (!external_resolution.empty()) |
SetDeviceResolution(external_output_->name, external_resolution); |
else |
DisableDevice(external_output_->name); |