Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus / 2002-09

lazarus Patch

2 messages · 2 people ·

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Andrew Johnson

Here is a minor patch partially fixing the bugs Tony found,

Patch includes:

-fixes Problems with hiding modal forms
-temporarily fixes TCustomForm.BorderStyle in bsNone -temporarily fixes problems with improper tabbing in TSynEdit

It should be noted that the Border Style fix is temporary because this apears to be a problem with GDK/GTK not LCL code. In GTK 2.0 this problem should no longer be an issue because we can simply turn off the border, however this is not available in GTK 1.X, so to do this we have to hide the gdk form after showing, reset the border flags, and reshow. This will mean borderless forms(for instance the Splash form) and non-bsSizeable forms may "Flash" upon showing, at the moment I know of no way to fix this in GTK 1, because I know of no way to realize the gdk-window, without showing the gtk-wiget.

Also on tabbing several things should be noted -

1.) There apears to be a bug in FPC, which causes it to bomb out when overriding a Protected property with a default value, so when creating controls, all controls natively default to TabStop = False.

2.) As a work around to this bug, when in the form designer it automatically sets tabstop to true on ALL wincontrols.

3.) Currently the new Tab Code has been redesigned to be called from within the GTK interface, however the problem with TSynEdit turns out to be that the Notebook components is receiving all key events before the editor, so the tab code is called BEFORE SynEdit can intercept it and handle it properly, so until a solution to this is resolved this code has been disabled. I have wasted a lot of time on this one, so unless I can figure out a better way to do this, or figure out how to fix the code, I will not be doing anymore to resolve this. AKA The tab code will continue work the way it did BEFORE my changes, that is, the taborder cannot be changed and it will always be the create/show order of the components.

4.) Apart from the prior problems(which granted ARE show stopers), I think the only thing left to be done to make tabbing work most of the time is to rearrange the Control order on changing of the tab order, so that in Lazarus saving to stream all components get saved in tab order. This will ensure that the initial taborder value is the one which was set in the editor. So if someone else want to fix the first 3 problems, especially #3, tabbing and tab order should work most of the time.

Andrew

_________________________________________________________________ MSN Photos is the easiest way to share and print your photos: http://photos.msn.com/support/worldwide.aspx

-------------- next part --------------
A non-text attachment was scrubbed...
Name: bin00005.bin
Type: application/octet-stream
Size: 4202 bytes
Desc: "lazarus.patch.gz"
Url : http://localhost/pipermail/lazarus/attachments/20020928/62aaf1e3/bin00005.bin

Reply by email