summaryrefslogtreecommitdiffstats
path: root/apps/ui
diff options
context:
space:
mode:
authorbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-01 09:22:37 +0000
committerbenwells@chromium.org <benwells@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-01 09:22:37 +0000
commit152050b668241a3b96bde67c28ba48728808311a (patch)
treef65121565cab50532b6a756f5438368b3e1357d4 /apps/ui
parent96caabdc88b377b45abf0a3d77955bf101bbe2b7 (diff)
downloadchromium_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.cc10
-rw-r--r--apps/ui/views/app_window_frame_view.h8
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_;