diff options
author | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-18 00:10:35 +0000 |
---|---|---|
committer | xiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-11-18 00:10:35 +0000 |
commit | fc2436bac6a8e5f6839f6e62e8680a15e7d592eb (patch) | |
tree | e479f2de51ae5075bdb12b82dbc15e5f0a7893cc /ui/aura_shell | |
parent | 35a5b75ccb6e4424a8a8a24556904481d46ebb29 (diff) | |
download | chromium_src-fc2436bac6a8e5f6839f6e62e8680a15e7d592eb.zip chromium_src-fc2436bac6a8e5f6839f6e62e8680a15e7d592eb.tar.gz chromium_src-fc2436bac6a8e5f6839f6e62e8680a15e7d592eb.tar.bz2 |
[Aura] Fix HtmlDialogBrowserTest.SizeWindow.
- Fix HtmlDialogBrowserTest.SizeWindow for Linux + Aura + Chromeos==0.
- Remove minimum_size_ from auralWindow and add an OnBoundsChanging to aura::WindowDelegate so that a delegate can apply bounds constriant;
- NativeWidgetAura uses OnBoundsChanging to apply Widget's minimum size;
- Remove minimum_size_ member from Widget because it is only used for widget with no frame (i.e. no non_client_view_) and such widget should have no minimum size;
BUG=104412
TEST=Verify the HtmlDialogBrowserTest.SizeWindow should pass for Linux + Aura + Chromeos==0.
Review URL: http://codereview.chromium.org/8574049
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110608 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/aura_shell')
-rw-r--r-- | ui/aura_shell/toplevel_window_event_filter.cc | 5 | ||||
-rw-r--r-- | ui/aura_shell/toplevel_window_event_filter_unittest.cc | 32 |
2 files changed, 25 insertions, 12 deletions
diff --git a/ui/aura_shell/toplevel_window_event_filter.cc b/ui/aura_shell/toplevel_window_event_filter.cc index e8609b4..4da437c 100644 --- a/ui/aura_shell/toplevel_window_event_filter.cc +++ b/ui/aura_shell/toplevel_window_event_filter.cc @@ -261,10 +261,7 @@ gfx::Size ToplevelWindowEventFilter::GetSizeForDrag( (size_change_direction & kBoundsChangeDirection_Vertical ? y_multiplier * (first_y - second_y) : 0); - // Enforce minimum window size. - const gfx::Size min_size = target->minimum_size(); - size.SetSize(std::max(width, min_size.width()), - std::max(height, min_size.height())); + size.SetSize(width, height); } return size; } diff --git a/ui/aura_shell/toplevel_window_event_filter_unittest.cc b/ui/aura_shell/toplevel_window_event_filter_unittest.cc index 5983699..e2c0094 100644 --- a/ui/aura_shell/toplevel_window_event_filter_unittest.cc +++ b/ui/aura_shell/toplevel_window_event_filter_unittest.cc @@ -29,16 +29,28 @@ namespace test { namespace { // A simple window delegate that returns the specified hit-test code when -// requested. -class HitTestWindowDelegate : public aura::test::TestWindowDelegate { +// requested and applies a minimum size constraint if there is one. +class TestWindowDelegate : public aura::test::TestWindowDelegate { public: - explicit HitTestWindowDelegate(int hittest_code) + explicit TestWindowDelegate(int hittest_code) : hittest_code_(hittest_code) { } - virtual ~HitTestWindowDelegate() {} + virtual ~TestWindowDelegate() {} + + void set_min_size(const gfx::Size& size) { + min_size_ = size; + } private: - // Overridden from TestWindowDelegate: + // Overridden from aura::Test::TestWindowDelegate: + virtual void OnBoundsChanging(gfx::Rect* new_bounds) OVERRIDE { + if (!min_size_.IsEmpty()) { + new_bounds->set_width(std::max(min_size_.width(), + new_bounds->width())); + new_bounds->set_height(std::max(min_size_.height(), + new_bounds->height())); + } + } virtual int GetNonClientComponent(const gfx::Point& point) const OVERRIDE { return hittest_code_; } @@ -47,8 +59,9 @@ class HitTestWindowDelegate : public aura::test::TestWindowDelegate { } int hittest_code_; + gfx::Size min_size_; - DISALLOW_COPY_AND_ASSIGN(HitTestWindowDelegate); + DISALLOW_COPY_AND_ASSIGN(TestWindowDelegate); }; class ToplevelWindowEventFilterTest : public aura::test::AuraTestBase { @@ -68,7 +81,7 @@ class ToplevelWindowEventFilterTest : public aura::test::AuraTestBase { protected: aura::Window* CreateWindow(int hittest_code) { - HitTestWindowDelegate* d1 = new HitTestWindowDelegate(hittest_code); + TestWindowDelegate* d1 = new TestWindowDelegate(hittest_code); aura::Window* w1 = new aura::Window(d1); w1->set_id(1); w1->Init(ui::Layer::LAYER_HAS_TEXTURE); @@ -111,8 +124,11 @@ TEST_F(ToplevelWindowEventFilterTest, BottomRight) { TEST_F(ToplevelWindowEventFilterTest, GrowBox) { scoped_ptr<aura::Window> w1(CreateWindow(HTGROWBOX)); + TestWindowDelegate* window_delegate = + static_cast<TestWindowDelegate*>(w1->delegate()); + window_delegate->set_min_size(gfx::Size(50, 50)); + gfx::Point position = w1->bounds().origin(); - w1->set_minimum_size(gfx::Size(50, 50)); aura::test::EventGenerator generator; generator.MoveMouseToCenterOf(w1.get()); generator.DragMouseBy(100, 100); |