Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Issue 145313003: Implement cursor compositing mode on Ash (Closed)

Created:
6 years, 11 months ago by hshi1
Modified:
6 years, 10 months ago
Reviewers:
oshima, Daniel Erat, sky, sheu
CC:
chromium-reviews, kalyank, sadrul, ben+ash_chromium.org, sheu
Visibility:
Public.

Description

Implement cursor compositing mode on Ash Currently this is only enabled when the accessibility feature "high contrast" mode or "large cursor" mode is enabled. We do not enable this by default because cursor compositing shows some lags especially on slow machines or when CPU is busy. BUG=290837 TEST=trybot, manual testing mirror/extend/dual display mode R=derat@chromium.org, oshima@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=249289

Patch Set 1 : Wire up calls to disable native cursor. #

Patch Set 2 : Fix cursor set transition (normal/large). #

Patch Set 3 : Fix linux_aura build. #

Total comments: 2

Patch Set 4 : Update cursor location in SetCursor. #

Patch Set 5 : Fix crash in handling custom cursor. #

Patch Set 6 : Have only one global CursorWindowController instance. TODO: handle transitions. #

Patch Set 7 : Only enable cursor compositing in high-contrast or large-cursor mode. #

Patch Set 8 : Add code to handle dual display and move cursor window between containers. #

Patch Set 9 : Always update cursor image in SetCursor. Fixes initial wrong cursor. #

Total comments: 20

Patch Set 10 : Address comments. #

Patch Set 11 : Get rid of current_cursor_set_ and requested_cursor_set_ #

Total comments: 8

Patch Set 12 : Move more stuff into CursorWindowController. #

Total comments: 4

Patch Set 13 : Fix nits. #

Total comments: 4

Patch Set 14 : Get rid changes in ui/views/. Let Shell call AshNativeCursorManager directly. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+451 lines, -187 lines) Patch
M ash/ash.gyp View 1 2 3 4 5 6 7 8 9 1 chunk +2 lines, -0 lines 0 comments Download
A ash/display/cursor_window_controller.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +90 lines, -0 lines 0 comments Download
A ash/display/cursor_window_controller.cc View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +265 lines, -0 lines 0 comments Download
M ash/display/display_controller.h View 1 2 3 4 5 6 7 8 9 10 11 3 chunks +6 lines, -0 lines 0 comments Download
M ash/display/display_controller.cc View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +8 lines, -1 line 0 comments Download
M ash/display/mirror_window_controller.h View 1 2 3 4 5 6 7 8 9 3 chunks +3 lines, -12 lines 0 comments Download
M ash/display/mirror_window_controller.cc View 1 2 3 4 5 6 7 8 9 7 chunks +4 lines, -163 lines 0 comments Download
M ash/display/mouse_cursor_event_filter.cc View 1 2 3 4 5 6 2 chunks +3 lines, -2 lines 0 comments Download
M ash/shell.h View 1 2 3 4 5 6 7 8 9 10 11 1 chunk +4 lines, -0 lines 0 comments Download
M ash/shell.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +7 lines, -0 lines 0 comments Download
M ash/test/mirror_window_test_api.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +4 lines, -3 lines 0 comments Download
M ash/wm/ash_native_cursor_manager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +8 lines, -0 lines 0 comments Download
M ash/wm/ash_native_cursor_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +35 lines, -6 lines 0 comments Download
M chrome/browser/chromeos/accessibility/accessibility_manager.cc View 1 2 3 4 5 6 7 8 9 10 11 2 chunks +12 lines, -0 lines 0 comments Download

Messages

Total messages: 25 (0 generated)
hshi1
@oshima - this is a work-in-progress CL intended to support cursor compositing mode on Ash. ...
6 years, 10 months ago (2014-01-30 02:03:41 UTC) #1
oshima
I didn't review thoroughly, but given that there is always one cursor window (in mirror ...
6 years, 10 months ago (2014-02-03 20:35:53 UTC) #2
hshi1
On 2014/02/03 20:35:53, oshima wrote: > I think it'd be better to have just one ...
6 years, 10 months ago (2014-02-03 21:43:25 UTC) #3
hshi1
https://codereview.chromium.org/145313003/diff/970001/ash/display/cursor_window_controller.cc File ash/display/cursor_window_controller.cc (right): https://codereview.chromium.org/145313003/diff/970001/ash/display/cursor_window_controller.cc#newcode134 ash/display/cursor_window_controller.cc:134: // TODO(oshima): Rotate cursor image (including hotpoint). On 2014/02/03 ...
6 years, 10 months ago (2014-02-03 21:43:32 UTC) #4
oshima
On 2014/02/03 21:43:25, hshi1 wrote: > On 2014/02/03 20:35:53, oshima wrote: > > I think ...
6 years, 10 months ago (2014-02-03 21:59:13 UTC) #5
hshi1
On 2014/02/03 21:59:13, oshima wrote: > On 2014/02/03 21:43:25, hshi1 wrote: > > On 2014/02/03 ...
6 years, 10 months ago (2014-02-05 00:05:45 UTC) #6
hshi1
+derat for more comments - this is a fairly non-trivial change with many corner cases. ...
6 years, 10 months ago (2014-02-05 21:18:14 UTC) #7
oshima
https://codereview.chromium.org/145313003/diff/1370001/ash/display/cursor_window_controller.h File ash/display/cursor_window_controller.h (right): https://codereview.chromium.org/145313003/diff/1370001/ash/display/cursor_window_controller.h#newcode37 ash/display/cursor_window_controller.h:37: // Sets the display bounds of the container window. ...
6 years, 10 months ago (2014-02-05 21:49:58 UTC) #8
Daniel Erat
i don't have a lot of state about this code, but here are a few ...
6 years, 10 months ago (2014-02-05 22:01:31 UTC) #9
hshi1
PTAL. I believe I have addressed the comments so far. Note: the CursorManager::SetNativeCursorEnabled() still feels ...
6 years, 10 months ago (2014-02-05 22:55:58 UTC) #10
sheu
6 years, 10 months ago (2014-02-05 23:13:32 UTC) #11
hshi1
@derat - sorry I have changed my mind regarding the "requested_cursor_set_" and "current_cursor_set_". I think ...
6 years, 10 months ago (2014-02-05 23:29:41 UTC) #12
oshima
thanks almost lg. https://chromiumcodereview.appspot.com/145313003/diff/1720002/ash/display/cursor_window_controller.cc File ash/display/cursor_window_controller.cc (right): https://chromiumcodereview.appspot.com/145313003/diff/1720002/ash/display/cursor_window_controller.cc#newcode183 ash/display/cursor_window_controller.cc:183: const gfx::Display& display = Shell::GetScreen()->GetPrimaryDisplay(); hmm, ...
6 years, 10 months ago (2014-02-05 23:43:38 UTC) #13
hshi1
https://codereview.chromium.org/145313003/diff/1720002/ash/display/cursor_window_controller.cc File ash/display/cursor_window_controller.cc (right): https://codereview.chromium.org/145313003/diff/1720002/ash/display/cursor_window_controller.cc#newcode183 ash/display/cursor_window_controller.cc:183: const gfx::Display& display = Shell::GetScreen()->GetPrimaryDisplay(); On 2014/02/05 23:43:39, oshima ...
6 years, 10 months ago (2014-02-06 00:48:43 UTC) #14
oshima
lgtm with nits Thanks! https://codereview.chromium.org/145313003/diff/1880002/ash/display/cursor_window_controller.cc File ash/display/cursor_window_controller.cc (right): https://codereview.chromium.org/145313003/diff/1880002/ash/display/cursor_window_controller.cc#newcode216 ash/display/cursor_window_controller.cc:216: cursor_set_, nit: move arguments to ...
6 years, 10 months ago (2014-02-06 01:00:47 UTC) #15
hshi1
+sky PTAL (OWNERS of ui/views/*) thanks! https://codereview.chromium.org/145313003/diff/1880002/ash/display/cursor_window_controller.cc File ash/display/cursor_window_controller.cc (right): https://codereview.chromium.org/145313003/diff/1880002/ash/display/cursor_window_controller.cc#newcode216 ash/display/cursor_window_controller.cc:216: cursor_set_, On 2014/02/06 ...
6 years, 10 months ago (2014-02-06 01:07:41 UTC) #16
sky
https://codereview.chromium.org/145313003/diff/2080001/ui/views/corewm/cursor_manager.h File ui/views/corewm/cursor_manager.h (right): https://codereview.chromium.org/145313003/diff/2080001/ui/views/corewm/cursor_manager.h#newcode66 ui/views/corewm/cursor_manager.h:66: // When disabled, native cursor is hidden even when ...
6 years, 10 months ago (2014-02-06 01:33:20 UTC) #17
hshi1
https://codereview.chromium.org/145313003/diff/2080001/ui/views/corewm/cursor_manager.h File ui/views/corewm/cursor_manager.h (right): https://codereview.chromium.org/145313003/diff/2080001/ui/views/corewm/cursor_manager.h#newcode66 ui/views/corewm/cursor_manager.h:66: // When disabled, native cursor is hidden even when ...
6 years, 10 months ago (2014-02-06 01:41:19 UTC) #18
hshi1
@sky and @oshima - I just noticed that ash::Shell in fact owns the AshNativeCursorManager pointer, ...
6 years, 10 months ago (2014-02-06 01:53:25 UTC) #19
Daniel Erat
lgtm https://codereview.chromium.org/145313003/diff/2080001/ash/display/cursor_window_controller.h File ash/display/cursor_window_controller.h (right): https://codereview.chromium.org/145313003/diff/2080001/ash/display/cursor_window_controller.h#newcode33 ash/display/cursor_window_controller.h:33: bool is_cursor_compositing_enabled() const { nit: inlined methods usually ...
6 years, 10 months ago (2014-02-06 01:54:25 UTC) #20
hshi1
FYI @sky - I have reverted all changes under ui/views. This does not need to ...
6 years, 10 months ago (2014-02-06 02:07:12 UTC) #21
oshima
On 2014/02/06 01:53:25, hshi1 wrote: > @sky and @oshima - I just noticed that ash::Shell ...
6 years, 10 months ago (2014-02-06 03:04:33 UTC) #22
hshi1
The CQ bit was checked by hshi@chromium.org
6 years, 10 months ago (2014-02-06 03:55:54 UTC) #23
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hshi@chromium.org/145313003/2150001
6 years, 10 months ago (2014-02-06 03:57:18 UTC) #24
hshi1
6 years, 10 months ago (2014-02-06 06:24:31 UTC) #25
Message was sent while issue was closed.
Committed patchset #14 manually as r249289 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698