Summary: | Touching tooltip activates weston desktop-shell launcher icons | ||
---|---|---|---|
Product: | Wayland | Reporter: | Anu Reddy <anasuyax.r.nannuri> |
Component: | weston | Assignee: | Wayland bug list <wayland-bugs> |
Status: | VERIFIED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | medium | ||
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Anu Reddy
2014-05-02 21:48:35 UTC
almost seems like a feature to me ;)... we'll see what everyone else thinks. (In reply to comment #1) > almost seems like a feature to me ;)... we'll see what everyone else thinks. This is a bit more complicated. The tooltip is implemented as a subsurface, and the code in toytoolkit doesn't handle input from subsurfaces correctly. When a touch event for the tooltip is received, it is processed as if it were an event on the top panel. So depending on what part of the tooltip you touch, a different launcher is activated. I sent a patch to the mailing list that solves this problem by ignoring input on the tooltip. I'll work on fixing the input handling later. Well, a tooltip should not be a sub-surface at all, it was never meant for that. Usually, overlaid sub-surfaces have their input region set to empty, which means picking goes right through to what is beneath. However, this case is special, because the parent surface (panel) is not a xdg_shell surface, so it cannot use the normal explicit tooltip mechanism. But that is also a good thing, because it allows you to use a sub-surface for implementing panel's tooltips, and the shell plugin could know to ignore the sub-surfaces of the panel explicitly. This is what I would see as the appropriate solution, *if* you want clicks/touches on the panel tooltip to be handled or ignored instead of go through. Note, that setting the input region to empty for a sub-surface that is used as a tooltip might not be right, as I'm not sure if a user expects the surface picking to go through the tooltip. commit a57c9f1b90a14bbbd5de217f1e44bd443cd3783f Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Date: Tue May 6 15:25:40 2014 +0300 window: Ignore input events from subsurfaces Toytoolkit was not designed to handle input from subsurfaces and instead it expects subsurfaces to have an empty input region. That way input events for subsurfaces are generated on the main surface and there is no need to convert coordinates before reporting the event to the user. However it is possible that a subsurface has a non-empty input region, but in that case those events aren't properly processed. The function window_find_widget() assumes the coordinates are in the main surface coordinate space, and ends up chosing the wrong widget. This patch changes the input code to completely ignore input events from subsurfaces. This option was chosen instead of ensuring that the input region on those surfaces is always empty since there's no enforcement that a subsurface should completely overlap with the main surface. If an event happens in the area of the surface that doesn't overlap, the event could cause a completely unrelated surface to be picked. https://bugs.freedesktop.org/show_bug.cgi?id=78207 |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.