diff options
author | xji@chromium.org <xji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-18 02:34:17 +0000 |
---|---|---|
committer | xji@chromium.org <xji@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-12-18 02:34:17 +0000 |
commit | 02d5ca8130c52ff90a2ac906a4e48c317f965797 (patch) | |
tree | db23bf5a00cb5d3450938071dad0ebdea3196a3d /chrome/browser/views/frame | |
parent | 8d8be886ac2e0454b36404d6f2569ad72629088f (diff) | |
download | chromium_src-02d5ca8130c52ff90a2ac906a4e48c317f965797.zip chromium_src-02d5ca8130c52ff90a2ac906a4e48c317f965797.tar.gz chromium_src-02d5ca8130c52ff90a2ac906a4e48c317f965797.tar.bz2 |
This CL fixes issue 4224: Window Management controls don't work with maximized RTL Chrome windows.
When checking whether a point is within a window management button view's boundary,
need to apply mirroring transformation on the view's boundary to work for RTL chrome.
http://crbug.com/4224
TEST:
1. Launch Chrome with any RTL (Eg: he, ar)
2. Maximize the browser window.
3. Hover over window management controls (min,restore,close), they all work correctly in the sense that the buttons got highlighted and react to user events. (without this fix, when hover over window management controls, the buttons won't get highlighted at all and they won't react to user events)
Review URL: http://codereview.chromium.org/14129
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7205 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/frame')
-rw-r--r-- | chrome/browser/views/frame/opaque_non_client_view.cc | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/chrome/browser/views/frame/opaque_non_client_view.cc b/chrome/browser/views/frame/opaque_non_client_view.cc index f7bfe22..c6d6ce4 100644 --- a/chrome/browser/views/frame/opaque_non_client_view.cc +++ b/chrome/browser/views/frame/opaque_non_client_view.cc @@ -657,7 +657,8 @@ views::View* OpaqueNonClientView::GetViewForPoint(const gfx::Point& point, for (int i = 0; i < arraysize(views); ++i) { if (!views[i]->IsVisible()) continue; - if (views[i]->bounds().Contains(point)) + // Apply mirroring transformation on view bounds for RTL chrome. + if (views[i]->GetBounds(APPLY_MIRRORING_TRANSFORMATION).Contains(point)) return views[i]; } return View::GetViewForPoint(point, can_create_floating); |