I found that when traversing through a list of menuitems in a scrollbox on a 
small display, I had to press the 'down' hotkey twice to go to the next 
menuitem, when this required the box to scroll down.

This seems to be a problem with

void hotspot_traverse(short direction)

in /server/input/if_hotspot.c

The reason is that first the new hotspot cursor location is calculated, then 
the new divnode is focused (possibly causing a scroll), and then the hotspot 
cursor is placed on the calculated position.

However, this position was calculated before the scrolling was done.
Next traverse attempt, the hotspot cursor position does not match the position 
returned by 'hotspot_closest(x,y)' (don't exactly know what that means), and 
no traverse takes place.

This seems to be solved by placing the hotspot cursor on its new position, 
before calling 'request_focus' for the new divnode.
Then, the scrolling takes place after the placing of the hotspot cursor, and 
the cursor will be scrolled together with the hotspot.

Next traverse attempt, hotspot cursor matches hotspot, and the traverse goes 
OK.

Is this fix OK, or will it have sideeffects?
If it's OK, can someone take care of changing this and checking it in?

Regards,

Pieter



-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/pgui-devel

Reply via email to