Håvard Tørring (htoerrin@xxxxxxxxx) wrote: > Hello, > > I have a 3dconnexion space navigator that I would love to be able to use to > pan and zoom the images in gimp. Yay, I have one of these as well. Please hack on that :-) > The problem with this approach is that gimp ignores the value of the events, > making it unusable. Browsing around the source code, I have identified that > the events from the navigator are correctly identified in > controller_linux_input.c, but when mapped to actual events, such as panning, > the values from the controller are ignored, and the panning is performed > with a fixed pixelcount per event. So my questions are as follows: > > - Are there any ongoing work with this controller that I should be aware of? I am not aware of any current work in that area. > - Are there someone that could give me a brief description of how the events > from the input controller are communicated through the software? I have been > unable to identify where in the code the calls to the panning and zooming > functions are generated. The linux input controller module has a mapping, that maps events to so called "actions", which are the same thing that e.g. get attached to the menu. The mapping from event to action happens in app/widgets/gimpcontrollerinfo.c in gimp_controller_info_event, which - if it has a mapping - emits an "event-mapped" signal. This in turn gets handled in app/widgets/gimpcontrollers.c, there you also see the logic how events with values are handled. Basically the assigned action needs to be an GIMP_ENUM_ACTION for the reported value to have an effect. It is perfectly possible that the actions used to scroll the view are not ENUM_ACTIONs and need fixing for this to work as expected. I hope this helps, Simon -- simon@xxxxxxxx http://simon.budig.de/ _______________________________________________ Gimp-developer mailing list Gimp-developer@xxxxxxxxxxxxxxxxxxxxxx https://lists.XCF.Berkeley.EDU/mailman/listinfo/gimp-developer