| Index: ash/frame/frame_border_hit_test_controller.cc
|
| diff --git a/ash/frame/frame_border_hit_test_controller.cc b/ash/frame/frame_border_hit_test_controller.cc
|
| index 228db6b99f8e242025e1f56aaf9070a5841e0370..1ce114dd1027dd3741fa0c01b1f8a2286113d356 100644
|
| --- a/ash/frame/frame_border_hit_test_controller.cc
|
| +++ b/ash/frame/frame_border_hit_test_controller.cc
|
| @@ -5,7 +5,7 @@
|
| #include "ash/frame/frame_border_hit_test_controller.h"
|
|
|
| #include "ash/ash_constants.h"
|
| -#include "ash/frame/header_painter.h"
|
| +#include "ash/frame/caption_buttons/frame_caption_button_container_view.h"
|
| #include "ash/wm/resize_handle_window_targeter.h"
|
| #include "ash/wm/window_state_observer.h"
|
| #include "ui/aura/env.h"
|
| @@ -31,8 +31,8 @@ FrameBorderHitTestController::~FrameBorderHitTestController() {
|
| // static
|
| int FrameBorderHitTestController::NonClientHitTest(
|
| views::NonClientFrameView* view,
|
| - HeaderPainter* header_painter,
|
| - const gfx::Point& point) {
|
| + FrameCaptionButtonContainerView* caption_button_container,
|
| + const gfx::Point& point_in_widget) {
|
| gfx::Rect expanded_bounds = view->bounds();
|
| int outside_bounds = kResizeOutsideBoundsSize;
|
|
|
| @@ -40,7 +40,7 @@ int FrameBorderHitTestController::NonClientHitTest(
|
| outside_bounds *= kResizeOutsideBoundsScaleForTouch;
|
| expanded_bounds.Inset(-outside_bounds, -outside_bounds);
|
|
|
| - if (!expanded_bounds.Contains(point))
|
| + if (!expanded_bounds.Contains(point_in_widget))
|
| return HTNOWHERE;
|
|
|
| // Check the frame first, as we allow a small area overlapping the contents
|
| @@ -52,7 +52,7 @@ int FrameBorderHitTestController::NonClientHitTest(
|
| int resize_border =
|
| frame->IsMaximized() || frame->IsFullscreen() ? 0 :
|
| kResizeInsideBoundsSize;
|
| - int frame_component = view->GetHTComponentForFrame(point,
|
| + int frame_component = view->GetHTComponentForFrame(point_in_widget,
|
| resize_border,
|
| resize_border,
|
| kResizeAreaCornerSize,
|
| @@ -61,11 +61,23 @@ int FrameBorderHitTestController::NonClientHitTest(
|
| if (frame_component != HTNOWHERE)
|
| return frame_component;
|
|
|
| - int client_component = frame->client_view()->NonClientHitTest(point);
|
| + int client_component = frame->client_view()->NonClientHitTest(
|
| + point_in_widget);
|
| if (client_component != HTNOWHERE)
|
| return client_component;
|
|
|
| - return header_painter->NonClientHitTest(point);
|
| + if (caption_button_container->visible()) {
|
| + gfx::Point point_in_caption_button_container(point_in_widget);
|
| + views::View::ConvertPointFromWidget(caption_button_container,
|
| + &point_in_caption_button_container);
|
| + int caption_button_component = caption_button_container->NonClientHitTest(
|
| + point_in_caption_button_container);
|
| + if (caption_button_component != HTNOWHERE)
|
| + return caption_button_component;
|
| + }
|
| +
|
| + // Caption is a safe default.
|
| + return HTCAPTION;
|
| }
|
|
|
| } // namespace ash
|
|
|