| Index: ui/views/window/non_client_view.cc
|
| diff --git a/ui/views/window/non_client_view.cc b/ui/views/window/non_client_view.cc
|
| index ed9dc4ab6479ac3363b62989cbe3e200fcff8501..1cb6bc374c05f682dbe924dcbfbaad3fc1cb0ece 100644
|
| --- a/ui/views/window/non_client_view.cc
|
| +++ b/ui/views/window/non_client_view.cc
|
| @@ -43,6 +43,7 @@ bool NonClientFrameView::GetClientMask(const gfx::Size& size,
|
|
|
| NonClientView::NonClientView()
|
| : client_view_(nullptr),
|
| + mirror_client_in_rtl_(true),
|
| overlay_view_(nullptr) {
|
| SetEventTargeter(
|
| std::unique_ptr<views::ViewTargeter>(new views::ViewTargeter(this)));
|
| @@ -165,7 +166,14 @@ void NonClientView::Layout() {
|
| LayoutFrameView();
|
|
|
| // Then layout the ClientView, using those bounds.
|
| - client_view_->SetBoundsRect(frame_view_->GetBoundsForClientView());
|
| + gfx::Rect client_bounds = frame_view_->GetBoundsForClientView();
|
| +
|
| + // RTL code will mirror the ClientView in the frame by default. If this isn't
|
| + // desired, do a second mirror here to get the standard LTR position.
|
| + if (base::i18n::IsRTL() && !mirror_client_in_rtl_)
|
| + client_bounds.set_x(GetMirroredXForRect(client_bounds));
|
| +
|
| + client_view_->SetBoundsRect(client_bounds);
|
|
|
| gfx::Path client_clip;
|
| if (frame_view_->GetClientMask(client_view_->size(), &client_clip))
|
|
|