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

Unified Diff: athena/wm/window_overview_mode.cc

Issue 416243004: Enable touch text selection on Athena (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Get windows list from container in overview mode Created 6 years, 5 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
« no previous file with comments | « athena/wm/window_manager_impl.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: athena/wm/window_overview_mode.cc
diff --git a/athena/wm/window_overview_mode.cc b/athena/wm/window_overview_mode.cc
index b37339e3cf7cca7b76aad83cc3e4ae66a5508c24..dd42065b4db8e34e4eadb648dec2d91ff516853c 100644
--- a/athena/wm/window_overview_mode.cc
+++ b/athena/wm/window_overview_mode.cc
@@ -99,6 +99,13 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
container,
scoped_ptr<ui::EventTargeter>(
new StaticWindowTargeter(container)))) {
+ const aura::Window::Windows& children = container->children();
+ for (aura::Window::Windows::const_iterator iter = children.begin();
+ iter != children.end(); iter++) {
+ if ((*iter)->type() == ui::wm::WINDOW_TYPE_NORMAL)
+ windows_.push_back(*iter);
+ }
+
container_->set_target_handler(this);
// Prepare the desired transforms for all the windows, and set the initial
@@ -110,10 +117,9 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
virtual ~WindowOverviewModeImpl() {
container_->set_target_handler(container_->delegate());
- aura::Window::Windows windows = container_->children();
- if (windows.empty())
+ if (windows_.empty())
return;
- std::for_each(windows.begin(), windows.end(), &RestoreWindowState);
+ std::for_each(windows_.begin(), windows_.end(), &RestoreWindowState);
}
private:
@@ -121,8 +127,7 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
// positions. The transforms are set in the |kWindowOverviewState| property of
// the windows.
void ComputeTerminalStatesForAllWindows() {
- aura::Window::Windows windows = container_->children();
- size_t window_count = windows.size();
+ size_t window_count = windows_.size();
size_t index = 0;
const gfx::Size container_size = container_->bounds().size();
@@ -131,8 +136,8 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
const float kMinScale = 0.6f;
const float kMaxScale = 0.95f;
- for (aura::Window::Windows::reverse_iterator iter = windows.rbegin();
- iter != windows.rend();
+ for (aura::Window::Windows::reverse_iterator iter = windows_.rbegin();
+ iter != windows_.rend();
++iter, ++index) {
aura::Window* window = (*iter);
@@ -159,13 +164,12 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
// Sets the initial position for the windows for the overview mode.
void SetInitialWindowStates() {
- aura::Window::Windows windows = container_->children();
- size_t window_count = windows.size();
+ size_t window_count = windows_.size();
// The initial overview state of the topmost three windows.
const float kInitialProgress[] = { 0.5f, 0.05f, 0.01f };
for (size_t i = 0; i < window_count; ++i) {
float progress = 0.f;
- aura::Window* window = windows[window_count - 1 - i];
+ aura::Window* window = windows_[window_count - 1 - i];
if (i < arraysize(kInitialProgress))
progress = kInitialProgress[i];
@@ -222,13 +226,12 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
// scrolling up; and positive when scrolling down.
void DoScroll(float delta_y) {
const float kEpsilon = 1e-3f;
- aura::Window::Windows windows = container_->children();
float delta_y_p = std::abs(delta_y) / GetScrollableHeight();
if (delta_y < 0) {
// Scroll up. Start with the top-most (i.e. behind-most in terms of
// z-index) window, and try to scroll them up.
- for (aura::Window::Windows::iterator iter = windows.begin();
- delta_y_p > kEpsilon && iter != windows.end();
+ for (aura::Window::Windows::iterator iter = windows_.begin();
+ delta_y_p > kEpsilon && iter != windows_.end();
++iter) {
aura::Window* window = (*iter);
WindowOverviewState* state = window->GetProperty(kWindowOverviewState);
@@ -243,8 +246,8 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
} else {
// Scroll down. Start with the bottom-most (i.e. front-most in terms of
// z-index) window, and try to scroll them down.
- for (aura::Window::Windows::reverse_iterator iter = windows.rbegin();
- delta_y_p > kEpsilon && iter != windows.rend();
+ for (aura::Window::Windows::reverse_iterator iter = windows_.rbegin();
+ delta_y_p > kEpsilon && iter != windows_.rend();
++iter) {
aura::Window* window = (*iter);
WindowOverviewState* state = window->GetProperty(kWindowOverviewState);
@@ -294,6 +297,7 @@ class WindowOverviewModeImpl : public WindowOverviewMode,
}
aura::Window* container_;
+ aura::Window::Windows windows_;
oshima 2014/08/01 20:27:14 you can just use container's children and property
mohsen 2014/08/01 20:44:35 OK. I think I see what you say. My only concern wo
WindowOverviewModeDelegate* delegate_;
scoped_ptr<aura::ScopedWindowTargeter> scoped_targeter_;
« no previous file with comments | « athena/wm/window_manager_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698