Index: chromeos/display/output_configurator.h |
diff --git a/chromeos/display/output_configurator.h b/chromeos/display/output_configurator.h |
index c59c0765bdff9d5a0b0b7ff7667d54cc2b5609d8..bac694a5e13588ec1a1bf226ec433ae24abd1728 100644 |
--- a/chromeos/display/output_configurator.h |
+++ b/chromeos/display/output_configurator.h |
@@ -177,6 +177,31 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { |
// size for the corresponding offset. |
virtual void ConfigureCTM(int touch_device_id, |
const CoordinateTransformation& ctm) = 0; |
+ |
+ // Sends a D-Bus message to the power manager telling it that the |
+ // machine is or is not projecting. |
+ virtual void SendProjectingStateToPowerManager(bool projecting) = 0; |
+ }; |
+ |
+ // Helper class used by tests. |
+ class TestApi { |
+ public: |
+ TestApi(OutputConfigurator* configurator, int xrandr_event_base) |
+ : configurator_(configurator), |
+ xrandr_event_base_(xrandr_event_base) {} |
+ ~TestApi() {} |
+ |
+ // Dispatches RRScreenChangeNotify and RRNotify_OutputChange events to |
+ // |configurator_| and runs ConfigureOutputs(). Returns false if |
+ // |configure_timer_| wasn't started. |
+ bool SendOutputChangeEvents(bool connected); |
+ |
+ private: |
+ OutputConfigurator* configurator_; // not owned |
+ |
+ int xrandr_event_base_; |
+ |
+ DISALLOW_COPY_AND_ASSIGN(TestApi); |
}; |
// Flags that can be passed to SetDisplayPower(). |
@@ -187,6 +212,15 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { |
// only connected display is external. |
static const int kSetDisplayPowerOnlyIfSingleInternalDisplay = 1 << 1; |
+ // Gap between screens so cursor at bottom of active display doesn't |
+ // partially appear on top of inactive display. Higher numbers guard |
+ // against larger cursors, but also waste more memory. |
+ // For simplicity, this is hard-coded to avoid the complexity of always |
+ // determining the DPI of the screen and rationalizing which screen we |
+ // need to use for the DPI calculation. |
+ // See crbug.com/130188 for initial discussion. |
+ static const int kVerticalGap = 60; |
+ |
// Returns true if an output named |name| is an internal display. |
static bool IsInternalOutputName(const std::string& name); |
@@ -206,6 +240,10 @@ class CHROMEOS_EXPORT OutputConfigurator : public MessageLoop::Dispatcher { |
state_controller_ = controller; |
} |
+ // Replaces |delegate_| with |delegate| and sets |configure_display_| to |
+ // true. Should be called before Init(). |
+ void SetDelegateForTesting(scoped_ptr<Delegate> delegate); |
+ |
// Initialization, must be called right after constructor. |
// |is_panel_fitting_enabled| indicates hardware panel fitting support. |
// If |background_color_argb| is non zero and there are multiple displays, |