Commit bd42bfcd authored by ananta@chromium.org's avatar ananta@chromium.org

Relanding this change with the DesktopAuraTopLevelOwnedPopupResizeTest enabled only for Windows.

Revert 243438 "Revert 243413 "Resize the widget when top level p..."

> Revert 243413 "Resize the widget when top level popup windows cr..."
> 
> > Resize the widget when top level popup windows created by the content layer are resized.
> > 
> > The content layer creates top level popup windows, for select items on a page for e.g. When these
> > windows are resized we need to resize the parent widget hosting them.
> > 
> > BUG=330596
> > TEST=Covered by views test DesktopAuraTopLevelOwnedPopupResizeTest
> > R=sky@chromium.org
> > 
> > Review URL: https://codereview.chromium.org/125203005
> 
> TBR=ananta@chromium.org
> 
> Review URL: https://codereview.chromium.org/127073003

TBR=ccameron@chromium.org

Review URL: https://codereview.chromium.org/127163002

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243442 0039d316-1c4b-4281-b951-d872f2087c98
parent 0d9d9418
......@@ -105,6 +105,7 @@ class DesktopNativeWidgetTopLevelHandler : public aura::WindowObserver {
top_level_handler->top_level_widget_->GetNativeView();
child_window->AddObserver(top_level_handler);
native_window->AddObserver(top_level_handler);
top_level_handler->child_window_ = child_window;
return native_window;
}
......@@ -132,13 +133,22 @@ class DesktopNativeWidgetTopLevelHandler : public aura::WindowObserver {
delete this;
}
virtual void OnWindowBoundsChanged(aura::Window* window,
const gfx::Rect& old_bounds,
const gfx::Rect& new_bounds) OVERRIDE {
if (top_level_widget_ && window == child_window_)
top_level_widget_->SetSize(new_bounds.size());
}
private:
DesktopNativeWidgetTopLevelHandler()
: top_level_widget_(NULL) {}
: top_level_widget_(NULL),
child_window_(NULL) {}
virtual ~DesktopNativeWidgetTopLevelHandler() {}
Widget* top_level_widget_;
aura::Window* child_window_;
DISALLOW_COPY_AND_ASSIGN(DesktopNativeWidgetTopLevelHandler);
};
......
......@@ -1164,6 +1164,14 @@ class DesktopAuraTopLevelWindowTest
}
}
aura::Window* owned_window() {
return owned_window_;
}
views::Widget* top_level_widget() {
return top_level_widget_;
}
private:
views::Widget widget_;
views::Widget* top_level_widget_;
......@@ -1209,6 +1217,29 @@ TEST_F(WidgetTest, DesktopAuraTopLevelOwnedPopupTest) {
RunPendingMessages();
}
#if defined(OS_WIN)
// TODO(ananta)
// Fix this test to work on Linux Aura. Need to implement the
// views::DesktopRootWindowHostX11::SetSize function
// This test validates that when a top level owned popup Aura window is
// resized, the widget is resized as well.
TEST_F(WidgetTest, DesktopAuraTopLevelOwnedPopupResizeTest) {
ViewsDelegate::views_delegate = NULL;
DesktopAuraTopLevelWindowTest popup_window;
ASSERT_NO_FATAL_FAILURE(popup_window.CreateTopLevelWindow(
gfx::Rect(0, 0, 200, 200), false));
gfx::Rect new_size(0, 0, 400, 400);
popup_window.owned_window()->SetBounds(new_size);
EXPECT_EQ(popup_window.top_level_widget()->GetNativeView()->bounds().size(),
new_size.size());
RunPendingMessages();
ASSERT_NO_FATAL_FAILURE(popup_window.DestroyOwnedWindow());
RunPendingMessages();
}
#endif
// Test to ensure that the aura Window's visiblity state is set to visible if
// the underlying widget is hidden and then shown.
TEST_F(WidgetTest, TestWindowVisibilityAfterHide) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment