TWinControl.WMSize loop detected
Original Reporter info from Mantis: mgr.inz.Player
-
Reporter name:
Original Reporter info from Mantis: mgr.inz.Player
- Reporter name:
Description:
TWinControl.WMSize loop detected, the widgetset does not like the LCL bounds or sends unneeded wmsize messages: Form2:TForm2 BoundsRealized=l=377,t=270,r=27546,b=23298 NewBoundsRealized=l=377,t=270,r=27546,b=23298.
Steps to reproduce:
Open uploaded file, extract. There are 3 identical projects. From the name of folder you can deduce which Lazarus was used to compile the project.
All of them have identical unit1 and unit2. LFM files are almost identical: the same layout, the same anchoring, the same BorderSpacing.
The differences are because I moved and slightly resized forms so LFM files have proper LCLVersion. (So I can be 100% sure which Lazarus I used)
The form, when created, should be as small as possible and with all components still visible. So, autosize is set to true on panels and form.
There are also EXE files so you can test it.
Steps to reproduce:
1 launch exe
2 click button1
3 "test window" will show up.
4 minimize it. "WMSize loop" exception
I realized that when we do one step extra, I don't get above exception.
1 launch exe
2 click button1
3 "test window" will show up.
4 resize "test window"
5 minimize it. There's no "WMSize loop" exception.
Older versions and "lazarus 1.70 (trunk)(rev.53262)(patched)" do not raise "TWinControl.WMSize loop" exception. I patched customform.inc, compiled Lazarus again, then compiled the project.
I uploaded patch as well. Treat it as dirty patch, I think it could be done better.
Additional information:
Older than 1.6 - OK
1.6 (official release) - NOT OK
1.61 (fixes_1_6)(rev.53244) - NOT OK
1.70 (trunk)(rev.53262) - NOT OK
Mantis conversion info:
- Mantis ID: 30826
- Build: 1.6(release) up to 1.7(SVN)
- Version: 1.7 (SVN)
- Fixed in revision: r53721 (#365e66af)
- Monitored by: » mgr.inz.Player (mgr.inz.Player)
- Target version: 1.6.4