diff options
author | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-01 09:22:37 +0000 |
---|---|---|
committer | benwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-01 09:22:37 +0000 |
commit | 152050b668241a3b96bde67c28ba48728808311a (patch) | |
tree | f65121565cab50532b6a756f5438368b3e1357d4 /apps/ui | |
parent | 96caabdc88b377b45abf0a3d77955bf101bbe2b7 (diff) | |
download | chromium_src-152050b668241a3b96bde67c28ba48728808311a.zip chromium_src-152050b668241a3b96bde67c28ba48728808311a.tar.gz chromium_src-152050b668241a3b96bde67c28ba48728808311a.tar.bz2 |
Fix draggable regions on for frame:none app windows on views.
This was broken recently with a change that assumed the draggable
regions are static.
BUG=358071
Review URL: https://codereview.chromium.org/220363002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@260813 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'apps/ui')
-rw-r--r-- | apps/ui/views/app_window_frame_view.cc | 10 | ||||
-rw-r--r-- | apps/ui/views/app_window_frame_view.h | 8 |
2 files changed, 11 insertions, 7 deletions
diff --git a/apps/ui/views/app_window_frame_view.cc b/apps/ui/views/app_window_frame_view.cc index 5f7842c..5fcef42 100644 --- a/apps/ui/views/app_window_frame_view.cc +++ b/apps/ui/views/app_window_frame_view.cc @@ -4,6 +4,7 @@ #include "apps/ui/views/app_window_frame_view.h" +#include "apps/ui/native_app_window.h" #include "base/strings/utf_string_conversions.h" #include "extensions/common/draggable_region.h" #include "grit/theme_resources.h" @@ -39,7 +40,7 @@ const char AppWindowFrameView::kViewClassName[] = AppWindowFrameView::AppWindowFrameView() : widget_(NULL), - draggable_region_(NULL), + window_(NULL), close_button_(NULL), maximize_button_(NULL), restore_button_(NULL), @@ -51,17 +52,17 @@ AppWindowFrameView::AppWindowFrameView() AppWindowFrameView::~AppWindowFrameView() {} void AppWindowFrameView::Init(views::Widget* widget, + NativeAppWindow* window, bool draw_frame, const SkColor& frame_color, - const SkRegion* draggable_region, int resize_inside_bounds_size, int resize_outside_bounds_size, int resize_outside_scale_for_touch, int resize_area_corner_size) { widget_ = widget; + window_ = window; draw_frame_ = draw_frame; frame_color_ = frame_color; - draggable_region_ = draggable_region; resize_inside_bounds_size_ = resize_inside_bounds_size; resize_outside_bounds_size_ = resize_outside_bounds_size; resize_area_corner_size_ = resize_area_corner_size; @@ -201,7 +202,8 @@ int AppWindowFrameView::NonClientHitTest(const gfx::Point& point) { // Check for possible draggable region in the client area for the frameless // window. - if (draggable_region_ && draggable_region_->contains(point.x(), point.y())) + SkRegion* draggable_region = window_->GetDraggableRegion(); + if (draggable_region && draggable_region->contains(point.x(), point.y())) return HTCAPTION; int client_component = widget_->client_view()->NonClientHitTest(point); diff --git a/apps/ui/views/app_window_frame_view.h b/apps/ui/views/app_window_frame_view.h index 64379f8..1781476 100644 --- a/apps/ui/views/app_window_frame_view.h +++ b/apps/ui/views/app_window_frame_view.h @@ -32,6 +32,8 @@ class Widget; namespace apps { +class NativeAppWindow; + // A frameless or non-Ash, non-panel NonClientFrameView for app windows. class AppWindowFrameView : public views::NonClientFrameView, public views::ButtonListener { @@ -45,11 +47,11 @@ class AppWindowFrameView : public views::NonClientFrameView, // is interpreted as a resize for the inner and outer border of the window // and the lower-right corner resize handle. If |draw_frame|, the view draws // its own window title area and controls, using |frame_color| (otherwise - // |frame_color| is ignored). |draggable_region| may be NULL. + // |frame_color| is ignored). void Init(views::Widget* widget, + NativeAppWindow* window, bool draw_frame, const SkColor& frame_color, - const SkRegion* draggable_region, int resize_inside_bounds_size, int resize_outside_bounds_size, int resize_outside_scale_for_touch, @@ -80,9 +82,9 @@ class AppWindowFrameView : public views::NonClientFrameView, const ui::Event& event) OVERRIDE; views::Widget* widget_; + NativeAppWindow* window_; bool draw_frame_; SkColor frame_color_; - const SkRegion* draggable_region_; views::ImageButton* close_button_; views::ImageButton* maximize_button_; views::ImageButton* restore_button_; |