[Lazarus] double win scroll [Re: Dear developers, we need your help before releasing 0.9.26]

Martin Friebe lazarus at mfriebe.de
Fri Sep 5 20:52:56 CEST 2008


http://bugs.freepascal.org/view.php?id=11768

Scrolling with the mouse wheel can affect more than one window.

 From short testing this seems to be a regression too. I can reproduce 
this, but only with SVN.
0.9.24  is not affected.

I have found some more info.

Assume the following layout: (O Object inspector / S Synedit / M MainBar)

MMMMMMMM
OO SSSSSSS
OO SSSSSSS
OO SSSSSSS
OO SSSSSSS

If the mouse is over the Synedit (relative X=50 y=90)
and the absolute screen coordinate (50/90) is over the objInspector (a 
scrollable part of the oi, like the grid)

then the grid will scroll together with synedit.


in C:\lazarus_latest\lcl\interfaces\win32\win32callback.inc  line 1803 ++



   WM_MOUSEWHEEL:
    begin
...
      with LMMouseEvent Do
      begin
        X := GET_X_LPARAM(LParam);
        Y := GET_Y_LPARAM(LParam);
        // check if mouse cursor within this window, otherwise send 
message to window the mouse is hovering over
        P.X := X;
        P.Y := Y;
.......
        Windows.ScreenToClient(TargetWindow, P);

This last line seems to somehow be guilty

I observed the following, (with a breakpoint on this code)

- first entry:
 X/Y  GET_X_LPARAM are the screen coordinates

- 2nd entry
 X/Y  GET_X_LPARAM are the relative coordinates, as after the last 
Windows.ScreenToClient(TargetWindow, P);
 

I'll see if I can find more, but maybe someone more closer to the code, 
can use the above to more quickly find the issue



Paul Ishenin wrote:
> Hello, General mailing list.
>
> Lazarus 0.9.26 is coming. We have made all the main changes we wanted to
> make. We spent the last couple of days on bug fixing. We have fixed many
> issues, but we are not sure we have fixed all regressions. It would be 
> sad to release a version, that you cannot use.
>
> Thus we kindly ask you to test our latest snapshots at
> http://www.hu.freepascal.org/lazarus/ or (better) the svn version.
> Please, check your work projects, run tests, play with the IDE, do crazy
> things. And if you find a regression, let us know through the bug
> tracker at http://bugs.freepascal.org/ .
>
> Lazarus 0.9.26 will not be released with regressions (new errors, things
> that worked in 0.9.24), *if* we know about them. If there are no more
> regressions, we will release in one or two weeks. After the release it
> will be too late to bash us for regressions. So grab this opportunity.
>
> The Lazarus team.
>
> _______________________________________________
> Lazarus mailing list
> Lazarus at lazarus.freepascal.org
> http://www.lazarus.freepascal.org/mailman/listinfo/lazarus
>   



More information about the Lazarus mailing list