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

Unified Diff: ash/display/display_controller.h

Issue 10909043: Cancel drag if display configuration changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: win fix, adjust test screen size Created 8 years, 3 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 side-by-side diff with in-line comments
Download patch
Index: ash/display/display_controller.h
diff --git a/ash/display/display_controller.h b/ash/display/display_controller.h
index d6e122ec86406cbe36ecf1ba1e78f1165abc0799..06151a216829677bde1ed84cc8b237d505ced5e6 100644
--- a/ash/display/display_controller.h
+++ b/ash/display/display_controller.h
@@ -11,6 +11,8 @@
#include "ash/ash_export.h"
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "base/gtest_prod_util.h"
+#include "base/observer_list.h"
#include "ui/aura/display_observer.h"
#include "ui/aura/display_manager.h"
@@ -61,6 +63,13 @@ struct ASH_EXPORT DisplayLayout {
// display, keeping them in sync with display configuration changes.
class ASH_EXPORT DisplayController : public aura::DisplayObserver {
public:
+ class Observer {
+ public:
+ // Invoked when the display configuration change is requested,
+ // but before the change is applied to aura/ash.
+ virtual void OnDisplayConfigurationChanging() = 0;
+ };
sky 2012/09/10 14:11:37 protected virtual destructor.
oshima 2012/09/10 15:49:11 Done.
+
DisplayController();
virtual ~DisplayController();
@@ -70,6 +79,10 @@ class ASH_EXPORT DisplayController : public aura::DisplayObserver {
// Initialize secondary displays.
void InitSecondaryDisplays();
+ // Add/Remove observers.
+ void AddObserver(Observer* observer);
+ void RemoveObserver(Observer* observer);
+
// Returns the root window for primary display.
aura::RootWindow* GetPrimaryRootWindow();
@@ -111,6 +124,8 @@ class ASH_EXPORT DisplayController : public aura::DisplayObserver {
void UpdateDisplayBoundsForLayout();
+ void NotifyDisplayConfigurationChanging();
+
// The mapping from display ID to its root window.
std::map<int64, aura::RootWindow*> root_windows_;
@@ -120,6 +135,8 @@ class ASH_EXPORT DisplayController : public aura::DisplayObserver {
// Per-device display layout.
std::map<std::string, DisplayLayout> secondary_layouts_;
+ ObserverList<Observer> observers_;
+
DISALLOW_COPY_AND_ASSIGN(DisplayController);
};

Powered by Google App Engine
This is Rietveld 408576698