Tooltips might not show after interactive drag/resize |
||||
Issue descriptionChrome Version: ToT OS: Linux (Ubuntu 17.10) When using chrome with builtin window decoration (not WindowManager's), tooltips stop showing after an interactive window dragging or resize is finished, if host window manager do not send a mouse/release event. What steps will reproduce the problem? (1) set chrome to use builtin window decoration. Right click the tabstrip and make sure "Use system title bar and borders" is not ticked. (2) make sure tooltips work eg hovering any button in chrome's UI (3) manually resize the chrome window in the way that when mouse is released, it is out of chrome window bounds. eg start an interactive resize with the mouse from the right edge, decreasing the chrome window by dragging the mouse to the left. When chrome reaches the minimal bound, keep moving the mouse to the left without releasing the button, so that it gets out of the chrome bounds. then release the button. (4) hover the mouse over the same element that used to showed the tooltip in step (2). What is the expected result? Tooltips show normally. What happens instead? Tooltips do not show 'till the next mouse down/up events.
,
Jan 26 2018
@sadrul: please watch the video attached. It shows Chromium/X11 ToT on Ubuntu 17.10 / Gnome 3.26 / X11. In this scenario, bug is really easily reproducible (as per the video).
,
Jan 26 2018
Is this ozone-x11? Or regular x11?
,
Jan 26 2018
This is regular chrome/x11. I just downloaded Google Chrome / Dev, and could also repro easily.
,
Jan 26 2018
BTW, on Gnome 3.26 Wayland (default on Ubuntu 17.10), reproducing it trickier. This is because XWayland apparently sends RELEASED events *occasionally* when a) manual resize happens at a slow pace b) mouse is released out of the chrome window (eg resize to a minimal and keep moving the mouse out of the chrome window bounds). In (b), if user unclicks the mouse button (resize ends), and hovers over back to the chrome window, RELEASE is sent when mouse enters back the chrome window bounds. However, if user user unclicks the mouse button (resize ends), then hovers over another app or the desktop area, and only then hovers over the chrome window, RELEASE is *not* sent when mouse enters the chrome window bounds. PS: It is harder for me to record this scenario because stable screen recorders seem not to available on wayland environments yet.
,
Jan 30 2018
+thomasanderson@ any thoughts on why the WM may not send the mouse-release to chrome after a drag-resize? Or how chrome can reset the state after the drag-resize ends?
,
Jan 30 2018
The way that WM drag-resizing is implemented is with _NET_WM_MOVERESIZE. Before sending that message, the client must release all pointer grabs so that the WM can take the grab for the resize. So if the cursor is not over Chrome when the resize ends, only the WM will get the event. Maybe it makes sense to set the mouse-state to unpressed before sending off the _NET_WM_MOVERESIZE? Also, I thought many other mouse events like mouse-moves also had the pressed state, so we could probably update the state from that as well.
,
Nov 23
|
||||
►
Sign in to add a comment |
||||
Comment 1 by sadrul@chromium.org
, Jan 26 2018