summaryrefslogtreecommitdiffstats
path: root/ash/display
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-14 07:03:40 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-11-14 07:03:40 +0000
commitd4e7391c8839a6d5bac0850a523e41af520629c7 (patch)
tree28f4b1d334572119dd476c17cf31c9d72ff3a892 /ash/display
parent9a9177bd07c922114736b4105fc6223fa4a0ce1d (diff)
downloadchromium_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.cc3
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);
};