| Index: components/constrained_window/constrained_window_views.cc
|
| diff --git a/components/constrained_window/constrained_window_views.cc b/components/constrained_window/constrained_window_views.cc
|
| index 37de79c84e03281a1e200c195a8ea42fe8bc9850..18398d6db6029a12e25c7983aef9f6460a1ed125 100644
|
| --- a/components/constrained_window/constrained_window_views.cc
|
| +++ b/components/constrained_window/constrained_window_views.cc
|
| @@ -24,6 +24,11 @@
|
| #import "components/constrained_window/native_web_contents_modal_dialog_manager_views_mac.h"
|
| #endif
|
|
|
| +#if defined(USE_AURA)
|
| +#include "ui/aura/window.h"
|
| +#include "ui/compositor/dip_util.h"
|
| +#endif
|
| +
|
| using web_modal::ModalDialogHost;
|
| using web_modal::ModalDialogHostObserver;
|
|
|
| @@ -126,6 +131,19 @@ void UpdateModalDialogPosition(views::Widget* widget,
|
| }
|
|
|
| widget->SetBounds(gfx::Rect(position, size));
|
| +
|
| +#if defined(USE_AURA)
|
| + if (!widget->is_top_level()) {
|
| + // Toplevel windows are automatiacally snapped, but CHILD windows
|
| + // may not. If it's not toplevel, snap the widget's layer to pixel
|
| + // based on the parent toplevel window, which should be snapped.
|
| + gfx::NativeView window = widget->GetNativeView();
|
| + views::Widget* toplevel =
|
| + views::Widget::GetTopLevelWidgetForNativeView(window->parent());
|
| + ui::SnapLayerToPhysicalPixelBoundary(toplevel->GetLayer(),
|
| + widget->GetLayer());
|
| + }
|
| +#endif
|
| }
|
|
|
| } // namespace
|
|
|