New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 788731 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug



Sign in to add a comment

Exo doesn't track pressed keys properly.

Project Member Reported by reve...@chromium.org, Nov 27 2017

Issue description

This is a regression from starting to use a post-target event handler in exo::Keyboard. Pre-target handler needs to be used to track pressed keys correctly.

The result is that incorrect set of pressed keys is passed to clients when input focus enter a client window.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d93d6936c4a37f673ee20a694a5e6b32a89e69b2

commit d93d6936c4a37f673ee20a694a5e6b32a89e69b2
Author: David Reveman <reveman@chromium.org>
Date: Mon Nov 27 19:52:05 2017

exo: Fix tracking of pressed keys.

Move pressed keys tracking to Seat class. This allows us to
always use a pre-target event handler for correct tracking
properly track pressed keys from browser startup until tear
down.

Note that as a result of this change we no longer filter out
key events that are already pressed/released. That should not
be needed now that we track keys properly.

This also switches from using std::vector to using
base::flat_set for storing the set of pressed keys.

Bug:  788731 
Tbr: yoshiki@chromium.org
Test: exo_unittests --gtest_filter=KeyboardTest.OnKeyboardEnter
Change-Id: I8b729db549a23f1f4c09c5a69ef4a44dc3565cc5
Reviewed-on: https://chromium-review.googlesource.com/790831
Commit-Queue: David Reveman <reveman@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519370}
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/keyboard.cc
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/keyboard.h
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/keyboard_delegate.h
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/keyboard_unittest.cc
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/seat.cc
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/seat.h
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/components/exo/wayland/server.cc
[modify] https://crrev.com/d93d6936c4a37f673ee20a694a5e6b32a89e69b2/ui/arc/notification/arc_notification_content_view_unittest.cc

Status: Fixed (was: Started)
Project Member

Comment 3 by bugdroid1@chromium.org, Nov 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a43a3ee8c62aa181bf89902ead6ab71c80b43f03

commit a43a3ee8c62aa181bf89902ead6ab71c80b43f03
Author: David Reveman <reveman@chromium.org>
Date: Tue Nov 28 02:07:08 2017

exo: Fix tear down crash in Seat class.

Fix ExoParts destruction order to ensure that WMHelper instance
is valid when exo::Display is destroyed.

Bug:  788731 
Test: Running Chrome with DCHECKs no longer fails at shutdown.
Change-Id: I9bddecd863d92b600378488e04612cff87cef1ae
Reviewed-on: https://chromium-review.googlesource.com/792214
Commit-Queue: David Reveman <reveman@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519523}
[modify] https://crrev.com/a43a3ee8c62aa181bf89902ead6ab71c80b43f03/ash/wayland/wayland_server_controller.cc
[modify] https://crrev.com/a43a3ee8c62aa181bf89902ead6ab71c80b43f03/chrome/browser/exo_parts.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Dec 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3f9d5619eef81ec64b59755944717d0691bbd65f

commit 3f9d5619eef81ec64b59755944717d0691bbd65f
Author: David Reveman <reveman@chromium.org>
Date: Mon Dec 04 02:57:52 2017

exo: Fix tracking of modifier flags.

Modifier flags needs same treatment as pressed keys. Move modifier flag
tracking to Seat class.

Bug:  788731 
Tbr: yoshiki@chromium.org
Test: exo_unittests --gtest_filter=KeyboardTest.OnKeyboardEnter
Change-Id: Ife2fae2d622dfff3617830ba232d0267fdbc9b35
Reviewed-on: https://chromium-review.googlesource.com/805359
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: David Reveman <reveman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521257}
[modify] https://crrev.com/3f9d5619eef81ec64b59755944717d0691bbd65f/components/exo/keyboard.cc
[modify] https://crrev.com/3f9d5619eef81ec64b59755944717d0691bbd65f/components/exo/keyboard_unittest.cc
[modify] https://crrev.com/3f9d5619eef81ec64b59755944717d0691bbd65f/components/exo/seat.cc
[modify] https://crrev.com/3f9d5619eef81ec64b59755944717d0691bbd65f/components/exo/seat.h

Labels: Merge-Request-64
Labels: -Merge-Request-64 Merge-Approved-64
Approving merge to M64 Chrome OS.
Project Member

Comment 7 by bugdroid1@chromium.org, Dec 4 2017

Labels: -merge-approved-64 merge-merged-3282
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cac3c386497adf9fc5f308745c80ce133407b764

commit cac3c386497adf9fc5f308745c80ce133407b764
Author: David Reveman <reveman@chromium.org>
Date: Mon Dec 04 20:48:19 2017

exo: Fix tracking of modifier flags.

Modifier flags needs same treatment as pressed keys. Move modifier flag
tracking to Seat class.

TBR=reveman@chromium.org

(cherry picked from commit 3f9d5619eef81ec64b59755944717d0691bbd65f)

Bug:  788731 
Tbr: yoshiki@chromium.org
Test: exo_unittests --gtest_filter=KeyboardTest.OnKeyboardEnter
Change-Id: Ife2fae2d622dfff3617830ba232d0267fdbc9b35
Reviewed-on: https://chromium-review.googlesource.com/805359
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: David Reveman <reveman@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#521257}
Reviewed-on: https://chromium-review.googlesource.com/806724
Cr-Commit-Position: refs/branch-heads/3282@{#17}
Cr-Branched-From: 5fdc0fab22ce7efd32532ee989b223fa12f8171e-refs/heads/master@{#520840}
[modify] https://crrev.com/cac3c386497adf9fc5f308745c80ce133407b764/components/exo/keyboard.cc
[modify] https://crrev.com/cac3c386497adf9fc5f308745c80ce133407b764/components/exo/keyboard_unittest.cc
[modify] https://crrev.com/cac3c386497adf9fc5f308745c80ce133407b764/components/exo/seat.cc
[modify] https://crrev.com/cac3c386497adf9fc5f308745c80ce133407b764/components/exo/seat.h

Sign in to add a comment