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

Unified Diff: ui/aura/toplevel_window_event_filter.cc

Issue 7970001: Better Z-index support. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: '' Created 9 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: ui/aura/toplevel_window_event_filter.cc
===================================================================
--- ui/aura/toplevel_window_event_filter.cc (revision 101829)
+++ ui/aura/toplevel_window_event_filter.cc (working copy)
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "ui/aura/window_manager.h"
+#include "ui/aura/toplevel_window_event_filter.h"
#include "ui/aura/event.h"
#include "ui/aura/focus_manager.h"
@@ -15,32 +15,35 @@
namespace aura {
-WindowManager::WindowManager(Window* owner)
- : owner_(owner),
+ToplevelWindowEventFilter::ToplevelWindowEventFilter(Window* owner)
+ : EventFilter(owner),
window_component_(HTNOWHERE) {
}
-WindowManager::~WindowManager() {
+ToplevelWindowEventFilter::~ToplevelWindowEventFilter() {
}
-bool WindowManager::OnMouseEvent(MouseEvent* event) {
+bool ToplevelWindowEventFilter::OnMouseEvent(Window* target,
+ MouseEvent* event) {
switch (event->type()) {
case ui::ET_MOUSE_PRESSED:
// TODO(beng): some windows (e.g. disabled ones, tooltips, etc) may not be
// focusable.
- owner_->GetFocusManager()->SetFocusedWindow(owner_);
+ target->GetFocusManager()->SetFocusedWindow(target);
window_component_ =
- owner_->delegate()->GetNonClientComponent(event->location());
- MoveWindowToFront();
+ target->delegate()->GetNonClientComponent(event->location());
+ MoveWindowToFront(target);
mouse_down_offset_ = event->location();
- window_location_ = owner_->bounds().origin();
+ window_location_ = target->bounds().origin();
+ if (window_component_ == HTCAPTION)
+ return true;
break;
case ui::ET_MOUSE_DRAGGED:
if (window_component_ == HTCAPTION) {
gfx::Point new_origin(event->location());
new_origin.Offset(-mouse_down_offset_.x(), -mouse_down_offset_.y());
- new_origin.Offset(owner_->bounds().x(), owner_->bounds().y());
- owner_->SetBounds(gfx::Rect(new_origin, owner_->bounds().size()), 0);
+ new_origin.Offset(target->bounds().x(), target->bounds().y());
+ target->SetBounds(gfx::Rect(new_origin, target->bounds().size()), 0);
return true;
}
break;
@@ -53,11 +56,13 @@
return false;
}
-void WindowManager::MoveWindowToFront() {
- Window* parent = owner_->parent();
- Window* child = owner_;
+void ToplevelWindowEventFilter::MoveWindowToFront(Window* target) {
+ Window* parent = target->parent();
+ Window* child = target;
while (parent) {
parent->MoveChildToFront(child);
+ if (parent == owner())
+ break;
parent = parent->parent();
child = child->parent();
}

Powered by Google App Engine
This is Rietveld 408576698