ReRe: [lazarus] ScrollBox scrolling problem situation

2008-01-30 Thread Andrey Gusev

Damn, wedged on Ctrl+V.
==

* Micha Nelissen [EMAIL PROTECTED] [Wed, 30 Jan 2008 22:27:36
+0100]:

Andrey Gusev wrote:
 - MoveWindowOrgEx(PaintMsg.DC, ORect.Left, ORect.Top);
 + MoveWindowOrgEx(PaintMsg.DC, -ORect.Left, -ORect.Top);

No. ORect.Left is offset from Win32 - LCL. So if LCL draws at (0,0)

it

should actually be at (ORect.Left, ORect.Top), so the code is correct.


Opposite scrolling of TPaintBox mist be explanable, anyway.
Ether by message proccessing bug, or TPaintBox implementation.

That's unintelligible (now) to me, why Panel being placed together
with TPaintBox react to scroll otherwise then without him ?
Get project from last my post in  [lazarus] Found serious bug in win32 
interface #2 thread.



 With these changes TScroolBox behaviour is almost adequate.
 Some problems with child controls positioning when scroll still
exists.

Hint: try looking at GetLCLClientBoundsOffset (if you didn't already).


Thanks fo hint, tha't is was missing part, to my investigations.


I am not sure what bug you want to fix?


My principal trouble is http://bugs.freepascal.org/view.php?id=10471
Mattias Gaertner have told way:


The problem is, that at the moment the win32 interface moves the childs
instead of moving the client area. This operation is not atomic, that
means, each child move creates messages. It is nearly impossible to
make this operation atomic platform independently. That's why instead
all widgetsets should instead move the 'client area'. This means the
childs should be put on an internal widget - the 'client area widget'.
Scrolling means then to simply move the client area widget.
So, it is needed that TWin32WSScrollingWinControl creates an internal
widget and put its childs on this widget. That's all.
The winapi part is not hard. The hardest part is to understand the
win32 interface and fix all places, where this might be relevant.


I simply fairly try to understand all up to the end.

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] ScrollBox scrolling problem situation

2008-01-08 Thread Andrey Gusev
Can somebody comments situation with ScrollBox scrolling Win32 wrong 
implementation ?


I have in view of
http://bugs.freepascal.org/view.php?id=10471,
http://bugs.freepascal.org/view.php?id=10400
issues, that still actual on svn 13339.

More concrete: where and how much deeply to dig, to fix that problem ?

_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


[lazarus] ScrollBox scrolling problem situation

2008-01-08 Thread Andrey Gusev

* Andrey Gusev [EMAIL PROTECTED] [Tue, 08 Jan 2008 20:53:48 +0300]:

Can somebody comments situation with ScrollBox scrolling Win32 wrong
implementation ?

I have in view of
http://bugs.freepascal.org/view.php?id=10471,
http://bugs.freepascal.org/view.php?id=10400
issues, that still actual on svn 13339.


13669, mistyped



More concrete: where and how much deeply to dig, to fix that problem ?


_
To unsubscribe: mail [EMAIL PROTECTED] with
   unsubscribe as the Subject
  archives at http://www.lazarus.freepascal.org/mailarchives


Re: [lazarus] ScrollBox scrolling problem situation

2008-01-08 Thread Mattias Gaertner
On Tue, 08 Jan 2008 20:55:59 +0300
Andrey Gusev [EMAIL PROTECTED] wrote:

 * Andrey Gusev [EMAIL PROTECTED] [Tue, 08 Jan 2008 20:53:48 +0300]:
  Can somebody comments situation with ScrollBox scrolling Win32 wrong
  implementation ?
 
  I have in view of
  http://bugs.freepascal.org/view.php?id=10471,
  http://bugs.freepascal.org/view.php?id=10400
  issues, that still actual on svn 13339.
 
 13669, mistyped
 
 
  More concrete: where and how much deeply to dig, to fix that
  problem ?

The problem is, that at the moment the win32 interface moves the childs
instead of moving the client area. This operation is not atomic, that
means, each child move creates messages. It is nearly impossible to
make this operation atomic platform independently. That's why instead
all widgetsets should instead move the 'client area'. This means the
childs should be put on an internal widget - the 'client area widget'.
Scrolling means then to simply move the client area widget.
So, it is needed that TWin32WSScrollingWinControl creates an internal
widget and put its childs on this widget. That's all.
The winapi part is not hard. The hardest part is to understand the
win32 interface and fix all places, where this might be relevant.

AFAIK the other widgetsets already use an internal client area widget.

Mattias

_
 To unsubscribe: mail [EMAIL PROTECTED] with
unsubscribe as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives