Gambas 3.17.3

What's new?

This release fixes may bugs detected since the 3.17.2 release.

Compilation and installation

Read the instructions there.

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

Enjoy it !

Changelog

CONFIGURATION

  • Fix detection of C++11 and C++17 compilation flags.

DEVELOPMENT ENVIRONMENT

  • Automatic completion: Take local variables declared inside loops into account.

  • Console output: Define the icon of the "raise to top" toolbar button.

  • Debugger: Workaround gnome-terminal that is not able to hold its child process.

  • Debugger: The console automatic show should work correctly when the console is undocked now.

  • Help browser: Correctly handle project help links in online mode.

  • Help browser: Fix tree refresh on project change and help on project classes.

  • Option dialog: Fix the list of different terminals.

  • Text editor: Fix the zoom buttons of the preview toolbar.

  • Welcome dialog: Stop the media player when the form is closed.

  • Welcome dialog: Don't crash when stopping the medial player.

  • Pretty printer: A line with PRINT ending with a comma does not indent the next line.

  • Project open dialog: Ignore .project files at the root of home folders.

  • Update support file.

INTERPRETER

  • Program exit now can be hold by the debugger to workaround a missing feature of the Gnome terminal.

  • QUIT now ends the process brutally. C++ static exit routines from unloaded shared libraries are not called anymore, avoiding the crash.

  • Always flush buffered streams at exit even if the exit is immediate.

  • GB.Every() API now creates a timer that is ignored by the event loop.

  • Add all comparison constants to gambas.h API header file.

  • Fix String[].FindSorted() and String[].ExistSorted() when using gb.Like or gb.Match comparison methods.

GB.DEBUG

  • Program exit now can be hold by the debugger to workaround a missing feature of the Gnome terminal.

GB.EVAL.HIGHLIGHT

  • TextHighlighter: Fix ToHTML(), ToRichText() and ToANSI() methods.

GB.FORM

  • TabPanel: Fix layout routine.

  • TabPanel: Make ShowTabPanel property visible in the IDE

  • Bookmarks: Changing the bookmarks automatically updates all DirChooser and FileChooser controls.

  • DirChooser & FileChooser: Showing the toolbar now automatically updates its contents according to the current view.

GB.FORM.EDITOR

  • TextEditor: The Remove() method now normalizes its arguments to avoid crashing if they are outside the document.

GB.FORM.HTMLVIEW

  • HtmlView: Fix a crash triggered by the Clear() method.

  • Fix use of C++11 compilation flags.

GB.GTK

  • The new proxy of a control is now correctly unlinked if it was already the proxy of another control.

  • TextArea: Modifying the contents by code now refreshes the control as expected.

  • TextArea: Fix drag and drop.

  • Reparenting a window correctly triggers automatic arrangement.

  • Closing the main window when it is persistent correctly quits the application.

  • The parent window of a modal window is now always the current active window.

  • Hide menu before destroying it, so that the top-level menu bar is correctly updated.

  • Container are now still arranged when they are hidden because of a null size.

  • Restarting a timer during its event handler should not lead to a possible crash anymore.

GB.GTK3

  • The new proxy of a control is now correctly unlinked if it was already the proxy of another control.

  • TextArea: Modifying the contents by code now refreshes the control as expected.

  • TextArea: Fix drag and drop.

  • Reparenting a window correctly triggers automatic arrangement.

  • Closing the main window when it is persistent correctly quits the application.

  • The parent window of a modal window is now always the current active window.

  • Implement Application.ShowTooltips property.

  • Hide menu before destroying it, so that the top-level menu bar is correctly updated.

  • Container are now still arranged when they are hidden because of a null size.

  • Restarting a timer during its event handler should not lead to a possible crash anymore.

  • The changes in main window stylesheet do not apply to the embedded title bar anymore.

GB.GTK3.WEBVIEW

  • Don't recreate the view when clearing it, it segfaults on Wayland. Just fill it with a void page.

GB.GUI.BASE

  • Picture: Refresh() does not try to refresh invalid windows anymore..

  • SpinBox: Buttons in wide mode correctly follow the enabled state now.

GB.MEDIA.FORM

  • MediaView: Ensure that the internal media player is deleted with the control.

GB.OPENSSL

  • Use the API instead of directly including interpreter header files. It breaks compilation on Ubuntu 22.10.1.

GB.PDF

  • Make gb.pdf compile with poppler 22.06, and disable it for higher versions.

GB.POPPLER

  • Add C++ 17 compilation flag to make gb.poppler compile everywhere.

GB.QT4

  • Ensure that the copy of a Font is internally completely detached from its source.

  • The new proxy of a control is now correctly unlinked if it was already the proxy of another control.

  • The parent window of a modal window is now always the current active window.

GB.QT5

  • Ensure that the copy of a Font is internally completely detached from its source.

  • The new proxy of a control is now correctly unlinked if it was already the proxy of another control.

  • The parent window of a modal window is now always the current active window.

GB.QT5.WAYLAND

  • Implement the SetTransientFor() API by using a Qt 5.13 non-documented public method.

  • Add a message to warn that Window.Stacking property does not work with Wayland and Qt5.

GB.SETTINGS

  • Store and restore the maximized state of windows.

GB.UTIL

  • CsvFile: Reading the Fields property now automatically reads the fields from the first line of the file if needed.

GB.WEB.GUI

  • Message: Remove the useless Message.Name property.

  • WebLabel: Fix center alignment.

  • WebTree: Fix selection management.

  • WebTree: Works correctly now if there is only one item.

  • New custom focus management.

  • Flush the standard output before quitting.

  • Keyboard events are now sent to the server only if needed (i.e. if a control or a form has a KeyPress event handler).

  • Default and cancel buttons work again.

  • Disable the web page until it is fully loaded.

  • Fix conversion of Gambas opacity to HTML transparency in colors.