Index: ash/display/display_controller.cc |
=================================================================== |
--- ash/display/display_controller.cc (revision 197747) |
+++ ash/display/display_controller.cc (working copy) |
@@ -22,16 +22,11 @@ |
#include "base/stringprintf.h" |
#include "base/values.h" |
#include "third_party/skia/include/utils/SkMatrix44.h" |
-#include "ui/aura/client/activation_client.h" |
-#include "ui/aura/client/capture_client.h" |
-#include "ui/aura/client/cursor_client.h" |
-#include "ui/aura/client/focus_client.h" |
#include "ui/aura/client/screen_position_client.h" |
#include "ui/aura/env.h" |
#include "ui/aura/root_window.h" |
#include "ui/aura/window.h" |
#include "ui/aura/window_property.h" |
-#include "ui/aura/window_tracker.h" |
#include "ui/compositor/compositor.h" |
#include "ui/compositor/dip_util.h" |
#include "ui/gfx/display.h" |
@@ -226,73 +221,6 @@ |
} // namespace |
-namespace internal { |
- |
-// A utility class to store/restore focused/active window |
-// when the display configuration has changed. |
-class FocusActivationStore { |
- public: |
- FocusActivationStore() |
- : activation_client_(NULL), |
- capture_client_(NULL), |
- focus_client_(NULL), |
- focused_(NULL), |
- active_(NULL) { |
- } |
- |
- void Store() { |
- if (!activation_client_) { |
- aura::RootWindow* root = Shell::GetPrimaryRootWindow(); |
- activation_client_ = aura::client::GetActivationClient(root); |
- capture_client_ = aura::client::GetCaptureClient(root); |
- focus_client_ = aura::client::GetFocusClient(root); |
- } |
- focused_ = focus_client_->GetFocusedWindow(); |
- if (focused_) |
- tracker_.Add(focused_); |
- active_ = activation_client_->GetActiveWindow(); |
- if (active_ && focused_ != active_) |
- tracker_.Add(active_); |
- |
- // Deactivate the window to close menu / bubble windows. |
- activation_client_->DeactivateWindow(active_); |
- // Release capture if any. |
- capture_client_->SetCapture(NULL); |
- // Clear the focused window if any. This is necessary because a |
- // window may be deleted when losing focus (fullscreen flash for |
- // example). If the focused window is still alive after move, it'll |
- // be re-focused below. |
- focus_client_->FocusWindow(NULL); |
- } |
- |
- void Restore() { |
- // Restore focused or active window if it's still alive. |
- if (focused_ && tracker_.Contains(focused_)) { |
- focus_client_->FocusWindow(focused_); |
- } else if (active_ && tracker_.Contains(active_)) { |
- activation_client_->ActivateWindow(active_); |
- } |
- if (focused_) |
- tracker_.Remove(focused_); |
- if (active_) |
- tracker_.Remove(active_); |
- focused_ = NULL; |
- active_ = NULL; |
- } |
- |
- private: |
- aura::client::ActivationClient* activation_client_; |
- aura::client::CaptureClient* capture_client_; |
- aura::client::FocusClient* focus_client_; |
- aura::WindowTracker tracker_; |
- aura::Window* focused_; |
- aura::Window* active_; |
- |
- DISALLOW_COPY_AND_ASSIGN(FocusActivationStore); |
-}; |
- |
-} // namespace internal |
- |
//////////////////////////////////////////////////////////////////////////////// |
// DisplayLayout |
@@ -399,8 +327,7 @@ |
DisplayController::DisplayController() |
: desired_primary_display_id_(gfx::Display::kInvalidDisplayID), |
- primary_root_window_for_replace_(NULL), |
- focus_activation_store_(new internal::FocusActivationStore()) { |
+ primary_root_window_for_replace_(NULL) { |
CommandLine* command_line = CommandLine::ForCurrentProcess(); |
#if defined(OS_CHROMEOS) |
if (!command_line->HasSwitch(switches::kAshDisableDisplayChangeLimiter) && |
@@ -973,12 +900,9 @@ |
void DisplayController::NotifyDisplayConfigurationChanging() { |
FOR_EACH_OBSERVER(Observer, observers_, OnDisplayConfigurationChanging()); |
- focus_activation_store_->Store(); |
} |
void DisplayController::NotifyDisplayConfigurationChanged() { |
- focus_activation_store_->Restore(); |
- |
internal::DisplayManager* display_manager = GetDisplayManager(); |
if (display_manager->num_connected_displays() > 1) { |
DisplayIdPair pair = GetCurrentDisplayIdPair(); |
Property changes on: ash/display/display_controller.cc |
___________________________________________________________________ |
Deleted: svn:mergeinfo |