After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 458361 - pointer don't update properly
pointer don't update properly
Status: RESOLVED FIXED
Product: gnome-mag
Classification: Deprecated
Component: magnifier-utility
unspecified
Other Linux
: Normal normal
: ---
Assigned To: bill.haneman
bill.haneman
Depends on:
Blocks:
 
 
Reported: 2007-07-19 17:28 UTC by Carlos Eduardo Rodrigues Diógenes
Modified: 2007-10-14 21:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Proposed fix (4.72 KB, patch)
2007-10-08 18:39 UTC, Carlos Eduardo Rodrigues Diógenes
committed Details | Review

Description Carlos Eduardo Rodrigues Diógenes 2007-07-19 17:28:22 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.
Comment 1 Carlos Eduardo Rodrigues Diógenes 2007-08-14 13:57:49 UTC
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.
Comment 2 Carlos Eduardo Rodrigues Diógenes 2007-10-08 18:39:56 UTC
Created attachment 96896 [details] [review]
Proposed fix
Comment 3 Carlos Eduardo Rodrigues Diógenes 2007-10-14 21:08:24 UTC
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.