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

Side by Side Diff: ui/views/widget/native_widget_aura.cc

Issue 10831361: Draggable region support for frameless app window on CrOS. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Use ShouldDescendIntoChildForEventHandling Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/widget/native_widget_aura.h" 5 #include "ui/views/widget/native_widget_aura.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/string_util.h" 8 #include "base/string_util.h"
9 #include "third_party/skia/include/core/SkRegion.h" 9 #include "third_party/skia/include/core/SkRegion.h"
10 #include "ui/aura/client/activation_change_observer.h" 10 #include "ui/aura/client/activation_change_observer.h"
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 gfx::NativeCursor NativeWidgetAura::GetCursor(const gfx::Point& point) { 753 gfx::NativeCursor NativeWidgetAura::GetCursor(const gfx::Point& point) {
754 return cursor_; 754 return cursor_;
755 } 755 }
756 756
757 int NativeWidgetAura::GetNonClientComponent(const gfx::Point& point) const { 757 int NativeWidgetAura::GetNonClientComponent(const gfx::Point& point) const {
758 return delegate_->GetNonClientComponent(point); 758 return delegate_->GetNonClientComponent(point);
759 } 759 }
760 760
761 bool NativeWidgetAura::ShouldDescendIntoChildForEventHandling( 761 bool NativeWidgetAura::ShouldDescendIntoChildForEventHandling(
762 aura::Window* child, 762 aura::Window* child,
763 const gfx::Point& location) { 763 const gfx::Point& event_location,
764 ui::EventType event_type) {
765 views::WidgetDelegate* widget_delegate = GetWidget()->widget_delegate();
766 if (widget_delegate &&
767 !widget_delegate->ShouldDescendIntoChildForEventHandling(
768 child, event_location, event_type))
769 return false;
770
764 // Don't descend into |child| if there is a view with a Layer that contains 771 // Don't descend into |child| if there is a view with a Layer that contains
765 // the point and is stacked above |child|s layer. 772 // the point and is stacked above |child|s layer.
766 typedef std::vector<ui::Layer*> Layers; 773 typedef std::vector<ui::Layer*> Layers;
767 const Layers& root_layers(delegate_->GetRootLayers()); 774 const Layers& root_layers(delegate_->GetRootLayers());
768 if (root_layers.empty()) 775 if (root_layers.empty())
769 return true; 776 return true;
770 777
771 Layers::const_iterator child_layer_iter( 778 Layers::const_iterator child_layer_iter(
772 std::find(window_->layer()->children().begin(), 779 std::find(window_->layer()->children().begin(),
773 window_->layer()->children().end(), child->layer())); 780 window_->layer()->children().end(), child->layer()));
774 if (child_layer_iter == window_->layer()->children().end()) 781 if (child_layer_iter == window_->layer()->children().end())
775 return true; 782 return true;
776 783
777 for (std::vector<ui::Layer*>::const_reverse_iterator i = root_layers.rbegin(); 784 for (std::vector<ui::Layer*>::const_reverse_iterator i = root_layers.rbegin();
778 i != root_layers.rend(); ++i) { 785 i != root_layers.rend(); ++i) {
779 ui::Layer* layer = *i; 786 ui::Layer* layer = *i;
780 if (layer->visible() && layer->bounds().Contains(location)) { 787 if (layer->visible() && layer->bounds().Contains(event_location)) {
781 Layers::const_iterator root_layer_iter( 788 Layers::const_iterator root_layer_iter(
782 std::find(window_->layer()->children().begin(), 789 std::find(window_->layer()->children().begin(),
783 window_->layer()->children().end(), layer)); 790 window_->layer()->children().end(), layer));
784 if (root_layer_iter > child_layer_iter) 791 if (root_layer_iter > child_layer_iter)
785 return false; 792 return false;
786 } 793 }
787 } 794 }
788 return true; 795 return true;
789 } 796 }
790 797
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
1043 return aura::Env::GetInstance()->is_mouse_button_down(); 1050 return aura::Env::GetInstance()->is_mouse_button_down();
1044 } 1051 }
1045 1052
1046 // static 1053 // static
1047 bool NativeWidgetPrivate::IsTouchDown() { 1054 bool NativeWidgetPrivate::IsTouchDown() {
1048 return aura::Env::GetInstance()->is_touch_down(); 1055 return aura::Env::GetInstance()->is_touch_down();
1049 } 1056 }
1050 1057
1051 } // namespace internal 1058 } // namespace internal
1052 } // namespace views 1059 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698