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

Issue 2396883003: exo: Fix dragging edge cases (Closed)

Created:
4 years, 2 months ago by Dominik Laskowski
Modified:
3 years, 10 months ago
Reviewers:
reveman, oshima
CC:
chromium-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

exo: Fix dragging edge cases This CL fixes two edge cases that affect both ARC and XDG clients, namely aborting the drag when entering immersive or overview mode. Note that this is only a partial server-side fix. For immersive mode, there is a client-side race between the drag bounds updates and the immersive bounds update, which sometimes results in an inconsistent state where the window is maximized but the content is not. For overview mode, there is a mouse input bug that resets the cursor's position to the origin, moving the window along with it. BUG=642894 BUG=631136 TEST=Entering immersive mode while dragging across displays does not result in an inconsistent state where the window is full screen but moving the mouse keeps updating its opacity. TEST=Entering overview mode while dragging across displays does not result in a crash.

Patch Set 1 #

Patch Set 2 : Rebase and format #

Patch Set 3 : Fix unit tests #

Total comments: 19

Patch Set 4 : Rebase #

Patch Set 5 : Address comments #

Patch Set 6 : Fix presubmit errors #

Total comments: 2

Patch Set 7 : Split #

Patch Set 8 : Rebase #

Patch Set 9 : Move coordinate translation #

Patch Set 10 : Remove useless header #

Patch Set 11 : Split #

Patch Set 12 : Rebase #

Total comments: 9
Unified diffs Side-by-side diffs Delta from patch set Stats (+71 lines, -24 lines) Patch
M components/exo/keyboard.h View 1 2 3 4 5 6 7 2 chunks +2 lines, -2 lines 0 comments Download
M components/exo/keyboard.cc View 1 2 3 4 5 6 7 3 chunks +3 lines, -3 lines 0 comments Download
M components/exo/shell_surface.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +6 lines, -0 lines 0 comments Download
M components/exo/shell_surface.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +18 lines, -2 lines 9 comments Download
M components/exo/wayland/server.cc View 1 2 3 4 5 6 7 8 9 10 4 chunks +4 lines, -4 lines 0 comments Download
M components/exo/wm_helper.h View 1 2 3 4 5 6 7 4 chunks +12 lines, -7 lines 0 comments Download
M components/exo/wm_helper.cc View 1 2 3 4 5 6 7 2 chunks +16 lines, -6 lines 0 comments Download
M components/exo/wm_helper_ash.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -0 lines 0 comments Download
M components/exo/wm_helper_ash.cc View 1 2 3 4 5 6 7 1 chunk +8 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 46 (27 generated)
Dominik Laskowski
PTAL.
4 years, 2 months ago (2016-10-05 23:54:21 UTC) #4
reveman
sorry for the delay. I started reviewing this but it's large and has a few ...
4 years, 2 months ago (2016-10-12 01:37:26 UTC) #15
oshima
https://codereview.chromium.org/2396883003/diff/40001/components/exo/display.h File components/exo/display.h (right): https://codereview.chromium.org/2396883003/diff/40001/components/exo/display.h#newcode38 components/exo/display.h:38: // displayable output. can you add documentation how coordinates ...
4 years, 2 months ago (2016-10-12 01:56:54 UTC) #16
Dominik Laskowski
Most of the ShellSurface changes (including set_moving/unset_moving) depend on coordinate conversion, which must land along ...
4 years, 2 months ago (2016-10-13 03:21:17 UTC) #19
reveman
Ok, I'll do a thorough review of this tomorrow then.
4 years, 2 months ago (2016-10-13 03:31:18 UTC) #22
reveman
Again, sorry for the delay. I'm still trying to understand the details of this CL. ...
4 years, 2 months ago (2016-10-16 23:16:02 UTC) #27
oshima
https://codereview.chromium.org/2396883003/diff/40001/components/exo/shell_surface.cc File components/exo/shell_surface.cc (right): https://codereview.chromium.org/2396883003/diff/40001/components/exo/shell_surface.cc#newcode986 components/exo/shell_surface.cc:986: } On 2016/10/13 03:21:17, Dominik Laskowski wrote: > On ...
4 years, 2 months ago (2016-10-17 17:22:58 UTC) #28
Dominik Laskowski
https://codereview.chromium.org/2396883003/diff/40001/components/exo/shell_surface.cc File components/exo/shell_surface.cc (right): https://codereview.chromium.org/2396883003/diff/40001/components/exo/shell_surface.cc#newcode986 components/exo/shell_surface.cc:986: } On 2016/10/17 17:22:58, oshima (OOO Oct 17) wrote: ...
4 years, 2 months ago (2016-10-18 21:22:56 UTC) #29
Dominik Laskowski
https://codereview.chromium.org/2396883003/diff/40001/components/exo/shell_surface.h File components/exo/shell_surface.h (right): https://codereview.chromium.org/2396883003/diff/40001/components/exo/shell_surface.h#newcode324 components/exo/shell_surface.h:324: std::unique_ptr<ash::WindowResizer> move_resizer_; On 2016/10/18 21:22:56, Dominik Laskowski wrote: > ...
4 years, 2 months ago (2016-10-21 03:05:19 UTC) #30
Dominik Laskowski
Ping? Also, it seems like much of the shell surface code will have to be ...
4 years, 1 month ago (2016-10-26 22:10:53 UTC) #31
oshima
On 2016/10/26 22:10:53, Dominik Laskowski wrote: > Ping? Also, it seems like much of the ...
4 years, 1 month ago (2016-10-26 22:19:11 UTC) #32
reveman
On 2016/10/26 at 22:19:11, oshima wrote: > On 2016/10/26 22:10:53, Dominik Laskowski wrote: > > ...
4 years, 1 month ago (2016-10-31 03:43:46 UTC) #33
Dominik Laskowski
On 2016/10/31 03:43:46, reveman wrote: > On 2016/10/26 at 22:19:11, oshima wrote: > > On ...
3 years, 11 months ago (2017-01-18 22:52:26 UTC) #37
reveman
Still a lot going on in this patch. Can you split it into smaller chunks? ...
3 years, 11 months ago (2017-01-19 00:31:45 UTC) #38
Dominik Laskowski
On 2017/01/19 00:31:45, reveman wrote: > Still a lot going on in this patch. Can ...
3 years, 11 months ago (2017-01-19 18:38:36 UTC) #42
reveman
On 2017/01/19 at 18:38:36, domlaskowski wrote: > On 2017/01/19 00:31:45, reveman wrote: > > Still ...
3 years, 11 months ago (2017-01-23 20:23:49 UTC) #43
Dominik Laskowski
I don't think it's possible to prevent this unless we switch to server-side movement. The ...
3 years, 11 months ago (2017-01-23 23:01:36 UTC) #44
reveman
On 2017/01/23 at 23:01:36, domlaskowski wrote: > I don't think it's possible to prevent this ...
3 years, 11 months ago (2017-01-26 06:50:21 UTC) #45
Dominik Laskowski
3 years, 10 months ago (2017-02-09 03:36:43 UTC) #46
Abandoning this CL. As discussed offline, the non-hacky solution is to
synchronize window state transitions with the client, and abort client-side
dragging on transition to immersive or overview mode.

Powered by Google App Engine
This is Rietveld 408576698