summaryrefslogtreecommitdiffstats
path: root/ui/aura_shell
diff options
context:
space:
mode:
authorxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-18 00:10:35 +0000
committerxiyuan@chromium.org <xiyuan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-11-18 00:10:35 +0000
commitfc2436bac6a8e5f6839f6e62e8680a15e7d592eb (patch)
treee479f2de51ae5075bdb12b82dbc15e5f0a7893cc /ui/aura_shell
parent35a5b75ccb6e4424a8a8a24556904481d46ebb29 (diff)
downloadchromium_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.cc5
-rw-r--r--ui/aura_shell/toplevel_window_event_filter_unittest.cc32
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);