Gambas 3.18.2

What's new?

This release includes important bug fixes made since the 3.18.1 release.

Compilation and installation

Read the instructions there.

If everything was fine, type "gambas3" to run the development environment.

Enjoy it !

Changelog

CONFIGURATION

  • Backport translations from master.

  • Update e-mail address in version.m4.

DEVELOPMENT ENVIRONMENT

  • Automatic completion: Fix variable detection in PROPERTY...USE syntax.

  • Debugger: The titles of the variable tree now expand on click.

  • Debugger: Stopping the debugger now kills the debugged process in external debugging mode.

  • Debugger: Update the debugged process id in real time when debugging a project using the embedded HTTP server.

  • Debugger: Edited files will not remain locked anymore after the debugger stops.

  • Form editor: Do not apply properties defined in a class of the project.

  • Help browser: Fix the CSS of the <H1> titles of offline help.

  • Help browser: Some fixes for the offline help.

  • Help browser: Prevent flickering of GTK+3 web view.

  • Make executable dialog: Add an option to ignore the "Public" project directory.

  • Project browser: The "Open", "Open with", "Properties" and "Version control" popup menu actions now work as expected.

  • Project tree: The import file menu comes back.

  • System information dialog: Display the version of SDL2, not SDL.

  • Translation dialog: Fix translation loading that was failing in some cases.

  • Giving a source directory the same name as a form does not hide its contents anymore, when the "Display form class files" option is toggled.

  • Automatically enable the "Use HTTP server" debugging option when the gb.web.gui component is used.

  • Make the SwichButtons a bit smaller.

  • Display an error message when sending a project by mail fails, instead of crashing.

  • Update financial support.

INTERPRETER

  • Forked processes now use fast exit, to avoir a possible crash.

  • The support for external debugging now uses the project name stored in the .startup file, not the executable name, which may be different.

  • Add implicit conversion of Boolean, Byte and Short values into Pointer.

  • Fix a test that leads to a crash when gcc optimizations are enabled.

  • When using an intermediate temporary stream, copy the behaviour flags from the original stream.

  • When a signal handler is set, ensure that the signal is not blocked.

  • Fix common integer loop optimization.

COMPILER

  • Write the name of the project in the .startup file.

ARCHIVER

  • Add a -p option to ignore the .public directory.

  • Handle hidden files only in the project root directory.

GB.DEBUG

  • Make the debugger more robust when writing on a fifo fails. Reopen the fifo if needed.

  • Sending a void line to the debugger repeats the last command only if the debugger is run from the command line.

  • If the GB_DEBUG_DEBUG environment variable is 1, then a message is printed each time the debugger fifo fails and must be reopened.

GB.EVAL.HIGHLIGHT

  • TextHighlighter: ToHTML() method does not emit a void line at the beginning anymore.

GB.FORM

  • Desktop directory icons initialisation does not crash anymore if a specific desktop directory does not exist.

  • FileView: Do not disable the file watch when the control is hidden, but when the control is detached from its parent.

  • SwitchButton: Smaller button and better use of system colors.

GB.FORM.EDITOR

  • TextEditor: KeyPress events are not triggered twice anymore by always using Stop Event.

  • TextEditor: Enhance FindNextString() and FindPreviousString() so that now embedded search can search patterns on the same line.

GB.GTK

  • Container: Do not mix arrangement flags and user control flag in the Container implementation.

  • Menu: Setting the Radio or the Toggle property now correctly keep the Enabled state.

  • UserContainer: Handle the same special event handlers as UserControl.

  • UserControl: Special event handlers can be declared indepently. Declaring UserControl_Draw is not required anymore.

  • The Drop property of editing controls (TextBox, TextArea...) is now TRUE by default.

GB.GTK3

  • Container: Do not mix arrangement flags and user control flag in the Container implementation.

  • Menu: Setting the Radio or the Toggle property now correctly keep the Enabled state.

  • UserContainer: Handle the same special event handlers as UserControl.

  • UserControl: Special event handlers can be declared indepently. Declaring UserControl_Draw is not required anymore.

  • The Drop property of editing controls (TextBox, TextArea...) is now TRUE by default.

GB.GUI.BASE

  • ComboBox: The popup now uses the same font as the ComboBox.

  • GridView: Fix right-to-left layout management and drawing.

  • TreeView: Make the Item property always available during the Click event handler.

  • TreeView, ColumnView, ListView: Fix right-to-left language support.

  • ScrollArea: Implement the Border property with the new UserContainer_Draw special event handler, so that DnD is not broken anymore on GTK+2.

GB.IMAGE

  • Add an API that inverts an image for the gb.image.effect component.

GB.IMAGE.EFFECT

  • Make Image.Invert() compatible with the method with the same name in gb.image.

GB.MEDIA

  • Disable GLib warnings so that GValueArray properties are correctly handled again.

  • MediaControl: LinkLaterTo() method should now be reliable when called multiple times.

  • MediaPipeline: Fix how duration is retrieved. Now the duration is actually available when the Duration event is raised.

  • MediaMessage: Take void messages into account.

GB.MIME

  • MimeMessage: The Sender property does not crash anymore when the sender is void.

GB.QT4

  • Container: Do not mix arrangement flags and user control flag in the Container implementation.

  • Menu: Setting the Picture property of a top-level menu has no effect anymore.

  • UserContainer: Handle the same special event handlers as UserControl.

  • UserControl: Special event handlers can be declared indepently. Declaring UserControl_Draw is not required anymore.

  • UserControl: Check that we are a UserControl when calling its special event handlers, because the MyContainer class is also used by the Form container!

  • The Drop property of editing controls (TextBox, TextArea...) is now TRUE by default.

GB.QT5

  • Container: Do not mix arrangement flags and user control flag in the Container implementation.

  • Menu: Setting the Picture property of a top-level menu has no effect anymore.

  • UserContainer: Handle the same special event handlers as UserControl.

  • UserControl: Special event handlers can be declared indepently. Declaring UserControl_Draw is not required anymore.

  • UserControl: Check that we are a UserControl when calling its special event handlers, because the MyContainer class is also used by the Form container!

  • The Drop property of editing controls (TextBox, TextArea...) is now TRUE by default.

GB.WEB.GUI

  • WebControl: Control refresh done by javascript is now correctly cancelled when the Refresh() method is called.

  • WebControl: KeyPress event handler is now correctly activated client side when a form is refreshed or displayed the first time.

  • WebComboBox: In read-only mode, ensure that no item is selected if the Index property is negative.

  • WebTable: Fix a javascript error when using single mode and radio buttons.

  • WebTable: Use white text for the index column of selected rows.

  • WebTable: The background color of a selected row now overrides the background color of its cells.