Hi,

Just fixed a bug with windows that had the -parent option given, and were
then positioned with the Left() and Top() methods. These methods were
detecting that the window had a parent and were translating X (in the case
of Top() ) and Y (in the case of Left() ) into the current X or Y
co-ordinate minus the parent X or Y co-ordinate, causing child windows that
were sent multiple Top(somenumber) or Left(somenumber) calls to "walk"
horizontally or vertically across the desktop in steps dependent on the
position of their parent window. Nasty.

You might be confused as to why I fixed this in quite the way I did (setting
a flag in userdata if the user specifies -parent).

I did this because I wanted to preserve the ability to explicitly call
SetParent on a window to insert it into another window's client area. This
is an especially handy trick for making hidable/moveable panes without
moving all the widgets one by one. If I simply detected if the thing that
was having Top/Left set was a window or not, it would not translate the
co-ordinates when it should do.

Anyway, I think I fixed this right. I'm tired, and a little confused now.
But the fix works and I've checked it for problems. It's in 665, is that
where I'm supposed to commit to still?

Steve


Reply via email to