[Laszlo-user] Mouse tracking - troubles with Local vs Global getMouse

Benjamin Shine ben at laszlosystems.com
Tue Jan 1 11:16:10 PST 2008


Shishir, I commend you on the excellent test case. Hooray for short  
test cases!

I'm not familiar with this particular area of the code,  but I  
believe there have been various bugs around global and local  
positions inside an inputtext.

To help Max track it down -- which browser are you using, and which  
runtime?

To make it an even better test, you could add a writeln or a comment  
about what value is expected versus what value you actually see --  
something like:
Debug.print('Expected 27 for local.green_x, got %d" , local.green_x);

I also invite you to search jira (http://jira.openlaszlo.org) for  
bugs about positioning within inputtext's -- especially look for  
recently-modified bugs.

Finally, please try this in a recent nightly build from trunk.

Thanks for participating in open source distributed quality assurance!

-ben

On Dec 31, 2007, at 1:33 PM, Shishir Ramam wrote:

> Hi,
> Perhaps this is a noob misunderstanding - but the following is the  
> simplest script I
> could muster that shows the issue.
>
> The intent is to instantiate an element on a mouse click, at the  
> position of the mouse click.
> I am having trouble deciphering the difference between the global  
> and local mouse events.
>
> Within the window in the script below, x=0,y=0 seems to be indexed  
> of the window area accounting for the border.
> However, the canvas_click and local_click are essentially at the  
> same point.
>
> The issue with this is that the local_click and canvas_click are  
> being instantiated offset by the title bar height and
> border wrt the actual mouse click.
>
> Would this be a bug or am I doing something wrong?
> Any help is much appreciated.
>
> I am using the 4.0.7 SDK to build this.
>
> thanks,
> -shishir
>
>
> <canvas debug="true">
>   <handler name="onclick" reference="LzGlobalMouse">
>     Debug.write('Global onclick x:' + canvas.getMouse('x') + ' y:'  
> + canvas.getMouse('y'));
>   </handler>
>
>   <class name="myshow" extends="inputtext">
>   </class>
>
>   <window name="mywindow" x="1" width="25%" height="25%"  
> clickable="true">
>     <handler name="onclick">
>       var local_zero = new myshow (mywindow, { x:"0", y:"0",  
> width:"10", height:"10", bgcolor:"0xff0000"});
>       var canvas_click = new myshow (mywindow, { x:canvas.getMouse 
> ('x'), y:canvas.getMouse('y'),
>                                width:"12", height:"12",  
> bgcolor:"0x00ff00"});
>       var local_click = new myshow (mywindow, { x:mywindow.getMouse 
> ('x'), y:mywindow.getMouse('y'),
>                                width:"10", height:"10",  
> bgcolor:"0x0000ff"});
>       Debug.write('Local onclick canvas_click(green) x:' +  
> canvas_click.x + ' y:' + canvas_click.y +
>                               '; local_click(blue) x:' +  
> local_click.x + ' y:' + local_click.y);
>     </handler>
>   </window>
> </canvas>



More information about the Laszlo-user mailing list