diff options
author | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-14 07:03:40 +0000 |
---|---|---|
committer | sky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-11-14 07:03:40 +0000 |
commit | d4e7391c8839a6d5bac0850a523e41af520629c7 (patch) | |
tree | 28f4b1d334572119dd476c17cf31c9d72ff3a892 /ash/display | |
parent | 9a9177bd07c922114736b4105fc6223fa4a0ce1d (diff) | |
download | chromium_src-d4e7391c8839a6d5bac0850a523e41af520629c7.zip chromium_src-d4e7391c8839a6d5bac0850a523e41af520629c7.tar.gz chromium_src-d4e7391c8839a6d5bac0850a523e41af520629c7.tar.bz2 |
Makes sure we don't end up showing two tooltips
When you show/hide a window RootWindow may generate events (for
enter/exit). If there is a capture on the desktop this can lead to
sending mouse events to a window that does not have capture. This can
lead to showing two tooltips. One from the window that has capture,
the other from the window that got the enter/exit.
This patch fixes the bug by ignoring events targetted at a window when
another window has capture. This is mildly complicated by how our
CaptureClient is implemented for the desktop. In particular only the
window that has capture knows it has capture, all other Widgets think
no has capture. The fix is to add a way to get the global capture.
BUG=317495
TEST=see bug
R=ben@chromium.org,varunjain@chromium.org
Review URL: https://codereview.chromium.org/69343004
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@235079 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ash/display')
-rw-r--r-- | ash/display/mirror_window_controller.cc | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/ash/display/mirror_window_controller.cc b/ash/display/mirror_window_controller.cc index a8e3ed9..96e3c62 100644 --- a/ash/display/mirror_window_controller.cc +++ b/ash/display/mirror_window_controller.cc @@ -67,6 +67,9 @@ class NoneCaptureClient : public aura::client::CaptureClient { virtual aura::Window* GetCaptureWindow() OVERRIDE { return NULL; } + virtual aura::Window* GetGlobalCaptureWindow() OVERRIDE { + return NULL; + } DISALLOW_COPY_AND_ASSIGN(NoneCaptureClient); }; |