GNOME Bugzilla – Bug 458361
pointer don't update properly
Last modified: 2007-10-14 21:08:24 UTC
The mouse pointer isn't updating properly. These are two cases to reproduce this: * If you open an application that make the pointer show an animation it's not updated in the magnified screen. * If you click in the title bar the pointer turns into a hand. The hand is only showed in the magnifier screen when you move the mouse. The same thing happens when you release the mouse button.
I know how to solve this, but this will involve creating a new interface in the ZoomRegion object, but I think that this interface isn't suitable for client applications (orca, gnopernicus, etc), so it's creation isn't justified and only add overhead to the magnifier, since every time the cursor need to be update it will have to follow all the CORBA call path. The problem is that the cursor changes are handled by magnifier/x11/gmag-cursor.c (gmag_cursor_events_handler) and although this function changes the cursor in the Magnifier object and scale this new cursor the ZoomRegions aren't notified about this change. The way I thought to resolve this was to call a method in all the ZoomRegions that are kept in a list by the Magnifier object, but these objects are kept as GNOME_Magnifier_ZoomRegion and not ZoomRegion, since I don't know how to convert a GNOME_Magnifier_ZoomRegion to a ZoomRegion the only way to do this call is implementing a new CORBA method, since the ZoomRegion is passed as a PortableServer_Servant throw this call and then I can get the ZoomRegion by calling: ZoomRegion *zoom_region = ZOOM_REGION (bonobo_object_from_servant (servant)); I also don't want to investigate how to hold the ZoomRegions list as ZoomRegion structs, since this will lead to major changes in the code.
Created attachment 96896 [details] [review] Proposed fix
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.