Bug 25963 - Registry doesn't emit mouse motion events
Summary: Registry doesn't emit mouse motion events
Status: ASSIGNED
Alias: None
Product: at-spi2
Classification: Unclassified
Component: core (show other bugs)
Version: unspecified
Hardware: All All
: medium normal
Assignee: Mark Doffman
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-01-09 07:29 UTC by Gerd Kohlberger
Modified: 2010-02-10 04:55 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Add mouse poll methods (5.67 KB, patch)
2010-02-10 04:55 UTC, Gerd Kohlberger
Details | Splinter Review

Description Gerd Kohlberger 2010-01-09 07:29:05 UTC
Mouse polling in the registryd is disabled by default and can't be enabled by clients. In the old registryd this was possible by calling registerGlobalEventListener.
Comment 1 Mark Doffman 2010-01-24 08:33:50 UTC
Confirmed that mouse movement events are no longer registered.

There is an issue with the registration. Mouse events are a VERY strange thing in AT-SPI. Its obvious that at some points KeyboardEvents and MouseEvents had the same structure/format as a normal AT-SPI 'Event' with a type, major, minor detail1..ect. Keyboard events are no longer like this, presumably because more information was required. They are now packaged as a 'DeviceEvent' with a totally different structure. Unfortunately mouse movement events remained the same format as a normal at-spi event. So we are in the strange situation that different device events have different formats.

When moving over to D-Bus we have messed this situation up even further. Because normal events don't need to be consumed we have changed them to D-Bus signals. This means that mouse events don't only have a different format to keyboard events but a different registration mechanism also. This hasn't been reflected in the deviceventcontroller. Its still assuming that mouse events are 'registered' with it before it starts to poll. Unfortunately this no longer happens. All mouse events are signals, so registration takes place with the D-Bus bus and not the registry daemon. Polling never gets started.

This bug must have been introduced a long time ago when we 'fixed' the issue regarding continuous polling of mouse movement.

Possible fixes:
     Always poll (BAD)
     Have clients inform the registryd when they need the mouse polled.
         - This involves adding new methods ("MousePollAdd", "MousePollRemove")
           Clients should then call these when they register/deregister
           any mouse movement events.
Comment 2 Gerd Kohlberger 2010-02-10 04:55:56 UTC
Created attachment 33212 [details] [review]
Add mouse poll methods

Thanks for the explanation Mark.

The attached patch adds MousePollAdd and MousePollRemove to the DeviceEventController interface.


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.