New issue
Advanced search Search tips

Issue 726865 link

Starred by 2 users

Issue metadata

Status: Archived
Owner:
Closed: Aug 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 731255



Sign in to add a comment

Pointer events not delivered correctly when an effective ui scale is in effect

Project Member Reported by sky@chromium.org, May 26 2017

Issue description

Go to settings and change the display setting such that you get a ui scale. In this mode events aren't delivered correctly.
 
Project Member

Comment 1 by bugdroid1@chromium.org, May 29 2017

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

commit 0ccd57006ec1b4d56132c7972978610d73db9b8d
Author: Scott Violet <sky@chromium.org>
Date: Mon May 29 19:52:26 2017

chromeos: makes window_finder honor transform set on window

BUG= 726865 
TEST=covered by tests

Change-Id: I37b6fa81a870fc1e38904cdddffb9c194e6ff6be
Reviewed-on: https://chromium-review.googlesource.com/517240
Reviewed-by: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#475376}
[modify] https://crrev.com/0ccd57006ec1b4d56132c7972978610d73db9b8d/services/ui/ws/window_finder.cc
[modify] https://crrev.com/0ccd57006ec1b4d56132c7972978610d73db9b8d/services/ui/ws/window_finder_unittest.cc

Project Member

Comment 2 by bugdroid1@chromium.org, May 30 2017

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

commit aa57febde88dfcd155767be89e9658c6158b350c
Author: Scott Violet <sky@chromium.org>
Date: Tue May 30 19:38:37 2017

chromeos: makes Window::SetTransform update server

BUG= 726865 
TEST=covered by tests
R=erg@chromium.org

Change-Id: I1eae46bec548a1ea5ac0cab6b62715d3a7ca2253
Reviewed-on: https://chromium-review.googlesource.com/517372
Reviewed-by: Fady Samuel <fsamuel@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#475630}
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/content/renderer/mus/renderer_window_tree_client.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/content/renderer/mus/renderer_window_tree_client.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/public/interfaces/window_tree.mojom
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/access_policy.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/default_access_policy.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/default_access_policy.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/operation.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/server_window.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/server_window_observer.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/test_change_tracker.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/test_change_tracker.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/test_utils.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/test_utils.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_manager_access_policy.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_manager_access_policy.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_server.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_server.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_tree.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_tree.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/services/ui/ws/window_tree_client_unittest.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/local/window_port_local.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/local/window_port_local.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/in_flight_change.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/in_flight_change.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/window_mus.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/window_port_mus.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/window_port_mus.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/mus/window_tree_client_unittest.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/test/mus/test_window_tree.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/test/mus/test_window_tree.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/window.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/window_port.h
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/window_port_for_shutdown.cc
[modify] https://crrev.com/aa57febde88dfcd155767be89e9658c6158b350c/ui/aura/window_port_for_shutdown.h

Project Member

Comment 3 by bugdroid1@chromium.org, Jun 5 2017

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

commit 9d6e481415f080dc155b17c18997c752f1eaa293
Author: Scott Violet <sky@chromium.org>
Date: Mon Jun 05 19:08:39 2017

chromeos: fixs coordinate conversion in mus

This addresses two things:
. Location sent to clients didn't reflect the transform.
. When determining deepest child the location is always converted
  using a transform from the root. This is done to avoid rounding
  errors.

BUG= 726865 
TEST=covered by tests
R=riajian@chromium.org

Change-Id: Id0e811aa48ff4912e24690875240215705cc94e2
Reviewed-on: https://chromium-review.googlesource.com/522929
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Ria Jiang <riajiang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#477050}
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/BUILD.gn
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/event_dispatcher_unittest.cc
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/window_coordinate_conversions.cc
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/window_coordinate_conversions.h
[delete] https://crrev.com/d1e3cc4ceca89a8c49ee84a2271b24f21b99074e/services/ui/ws/window_coordinate_conversions_unittest.cc
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/window_finder.cc
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/window_finder.h
[modify] https://crrev.com/9d6e481415f080dc155b17c18997c752f1eaa293/services/ui/ws/window_server.cc

Comment 4 by sky@chromium.org, Jun 8 2017

Blocking: 731255
Project Member

Comment 5 by bugdroid1@chromium.org, Aug 23 2017

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

commit 6b97da56e2a874a7a55cfba927102c55d0ba553e
Author: Scott Violet <sky@chromium.org>
Date: Wed Aug 23 00:31:19 2017

chromeos: fixs two bugs in event handling in mus

. the cursor position needs to take into account the
  ui_scale. Aura expects this behavior, so that without it we end up
  with a mismatch in Env::last_mouse_location() where it can jump
  around.
. WindowEventDispatcher may end up converting the coordinates of
  LocatedEvents. This is only applicable to local coordinates, not the
  root coordinates.

BUG= 726865 
TEST=covered by tests

Change-Id: I4750b974508b16a04c528ff02ac96d348ec0929a
Reviewed-on: https://chromium-review.googlesource.com/627656
Reviewed-by: Elliot Glaysher <erg@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496524}
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/services/ui/ws/platform_display.h
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/services/ui/ws/platform_display_default.cc
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/services/ui/ws/platform_display_default.h
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/services/ui/ws/test_utils.cc
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/services/ui/ws/test_utils.h
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/ui/aura/window_event_dispatcher.cc
[modify] https://crrev.com/6b97da56e2a874a7a55cfba927102c55d0ba553e/ui/aura/window_event_dispatcher_unittest.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 25 2017

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

commit 215d2d4591b5956a06d36fbb53ed223cefcb457c
Author: Scott Violet <sky@chromium.org>
Date: Fri Aug 25 21:16:01 2017

chromeos: v2 of account for transform set on root for coordinate conversion

When a ui scale is in effect a transform is set on the client visible
display root. This patch makes the transform be taken into account
when determining the location of events. This means that when the
client gets a window relative location it's been transformed by the
effective ui scale (the transform set on the root). This means the
code in Event::UpdateForRootTransform() needs to take that into
account.

This also fixes a bug in how window_finder was calculating
locations. Matrix multiplication was done in the wrong order. Added
test coverage.

BUG= 726865 
TEST=covered by tests

Change-Id: Icbd3a8eb2d29abd7dcde506c5d05bcafd7f197bd
Reviewed-on: https://chromium-review.googlesource.com/629596
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497537}
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/BUILD.gn
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/event_dispatcher.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/event_dispatcher_delegate.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/event_dispatcher_unittest.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/focus_controller_unittest.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/modal_window_controller.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/server_window.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/server_window.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/server_window_delegate.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/server_window_drawn_tracker.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/test_server_window_delegate.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/test_server_window_delegate.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_coordinate_conversions.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_coordinate_conversions.h
[add] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_coordinate_conversions_unittest.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_finder.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_finder_unittest.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_manager_access_policy.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_manager_state.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_manager_state.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_server.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/services/ui/ws/window_server.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/mus/window_mus.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/mus/window_tree_host_mus.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/mus/window_tree_host_mus.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/window_event_dispatcher.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/window_targeter.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/window_tree_host.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/aura/window_tree_host.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/events/event.cc
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/events/event.h
[modify] https://crrev.com/215d2d4591b5956a06d36fbb53ed223cefcb457c/ui/events/event_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 25 2017

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

commit 8b1faa9d30eebb90950295c5fdbebdba9117da35
Author: Scott Violet <sky@chromium.org>
Date: Fri Aug 25 22:41:42 2017

chromeos: convert observed events the same way we convert other events

PointerEvents flow through a different dispatch path, which means they
don't get converted the same was other events. This patch makes the
events get converted in the same way (at least for the window
manager, the non-window-manager case will be fixed later).

BUG= 726865 
TEST=covered by tests

Change-Id: Ib64254bacc82758681eadf2f632cb1aaeb4a8432
Reviewed-on: https://chromium-review.googlesource.com/630376
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497572}
[modify] https://crrev.com/8b1faa9d30eebb90950295c5fdbebdba9117da35/ui/aura/mus/window_tree_client.cc
[modify] https://crrev.com/8b1faa9d30eebb90950295c5fdbebdba9117da35/ui/aura/mus/window_tree_client.h
[modify] https://crrev.com/8b1faa9d30eebb90950295c5fdbebdba9117da35/ui/aura/mus/window_tree_client_unittest.cc
[modify] https://crrev.com/8b1faa9d30eebb90950295c5fdbebdba9117da35/ui/aura/mus/window_tree_host_mus.cc
[modify] https://crrev.com/8b1faa9d30eebb90950295c5fdbebdba9117da35/ui/aura/test/aura_test_base.cc
[modify] https://crrev.com/8b1faa9d30eebb90950295c5fdbebdba9117da35/ui/aura/test/aura_test_base.h

Comment 8 by sky@chromium.org, Aug 25 2017

Status: Fixed (was: Started)
AFAICT all pointer events and events now have the right coordinates.

Comment 9 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment