Lazarus 2.2 fixes branch

From Lazarus wiki
Jump to navigationJump to search

Note: This page is used internally by the Lazarus team.
The data in this page does not represent the full extent of what is included in the fixes branch/versions


For a list of what was merged to the Fixes branch please visit:

Open issues listed on the linked milestones are loosely targeted for the indicated version. Their final inclusion depends on the available man-power and/or contributions. Release may or may not be deferred for any non resolved issue.



This page contains the revisions to be merged from trunk to the Lazarus 2.2 fixes branch.

These are only fixes made after the branch was created. For other fixes made since the previous release (2.0) see SVN and Lazarus 2.0 fixes branch

Release notes can be found here

Internal Merge requests for 2.2.0

Open Merge requests

Submitted by others / waiting for sign off by team member

Submitted by developer / committer and waiting for testing (do not commit yet)

  • 5133009b Qt/Qt5/Win32: fixed page size and name (qt) and page orientation mismatch under win32. Patch by Joeny Ang. Issue #39449
  • 09a4c2fb Qt5: fixed slowness with TQtPrinter under MSWindows. Issue #39461

Merge conflicts

  • 5e0cc9032a Documentation updates. — depends on d5fe15d448b3b84183c0cf5c399e184ac6aa7091 (Docs: LCL. Updates topics in ShellCtrls.xml.)
  • 06a60b60b6 Documentation updates. — depends on 840389dad3b79d180297422d7c208950f4ecdc4e.
  • 70452d48d7 Docs: LCL/dialogs. Updates topics for changes in 608ffc5e.
  • b4b11c6f2a Documentation updates.
  • 1f1239bb7a Docs: LazUtils/lazmethodlist. Adds SameMethod and updates CompareMethods topics. Depends on 814e4ba4.
  • 370e42c4e4 Docs: LCL/lclproc. Removes topics deprecated since version 2.1. Depends on 814e4ba4.
  • fc0c7393bb Docs: LCL/interfacebase. Adds missing topic for MemSizeLessThan. Depends on 75aebbee.
  • bdd25fd5e7 Docs: LCL/ShellCtrls. Removes invalid See Also links.
  • 18bece2476 Docs: LazControls/listviewfilteredit. Removes topic for duplicate type in #e8b4862a.
  • 7c2368058c Docs: LazUtils/lazstringutils. Removes topic for deprecated routine in #9a816398. — #9a816398 is not (and should not be) merged to fixes_2_2.
  • 0bbdfcf556 Docs: LCL/buttons. Adds content for ActionChange and FindDownButton topics in TCustomBitBtn. Depends on 27d3cf84.
  • 70ee915771 Docs: LCL/shellctrls. Adds and removes topics.Depends on 06701d05a7.

Submitted by developer / committer, tested, waiting to be merged

  • 9cfc817173 Docs: LCL/controls. Adds or updates topic content.
  • 6bcaef208f Docs: LCL, LazUtils. Updates topics for changes in 53fe133e.
  • 805c9e3169 IDE: Open also projects and packages when their names are drag/dropped, or passed as cmd line for a running instance. Issue #39338.

Processed Merge requests for 2.2.0RC3

  • 34d7072ca1 Docs: LazUtils/masks. Removes deprecation warnings after #896764a7.
  • b18bf9be0c Docs: LazUtils/lazstringutils. Updates ShortDotsLine topic for deprecated routine.
  • 937b6bdfef Codetools: Ignore empty () in function description. Generate function body correctly. Issue #39441
  • 46a1f547f0 IdeIntf: Rebuild the OI component tree after comp deletion. CollectionItems do not get deleted otherwise.
  • c8bfe6c6cd LazUtils/uitypes.. Comments see also links in the #rtl.system.uitypes namespace.
  • 0d20c53cd4 LCL-GTK3: Prevent crash when Open/SaveDialog is closed. Remove 'destroy' signal handler. Still no memory leaks.
  • da5bd4801c LCL-GTK3: Prevent crash in SaveDialog creation. For some reason virtual class functions confused it.
  • adafca05c0 lcl: fixed TSpeedButton with Action and changing Action.ImageIndex
  • 5aee9d5c07 lcl: fixed TBitButton with Action and changing Action.ImageIndex
  • 123fe0c949 Docs: LCL/buttons. Adds content for TCustomSpeedButton.ActionChange. Depends on adafca05.
  • d43d4618 Qt,Qt5: fixed OnCloseUp event for TDBCustomComboBox. Issue #39455
  • 79e6efe7eb LCL/controls. Updates Hint-related topics in TControl.
  • bbd1e41311 Docs: LCL/forms. Adds missing topics or content.
  • f642074957 LCL/grids. Fixes spelling error.
  • f506e095e4 Docs: LCL. Removes duplicated content and links to updated original.
  • c0540bb8b0 Docs: LazUtils/lazloggerbase. Comments see also links to unit properties flagged as build warnings.

Fixes for 2.2.0RC2 (merged)

  • r65294 LazReport: Allow entering more than one digit in font combobox editor. Issue #39026, patch by Soner.
  • r65295 LazReport: Change an event parameter name. "Width" clashed with TControl.Width. Issue #39025, patch by Soner.
  • r65383 LazUtils: Fix building when directory is a Windows mount point. Issue #39120.
  • r65388 IdeIntf: Allow multi-line property editors in Dialogs, TTaskDialog. Issue #39170.
  • r65392, 65424, 65438, 65444, 65450, 65462, 65472, 65477, 65481, 65495, 65500 Documentation updates.
  • r65395 TPageControl: QT5: Fixed PageControl.GetTabRect, see project Issue #39166
  • r65396 TPageControl: QT: Fixed PageControl.GetTabRect, see project Issue #39166
  • r65432 IDE: add unit DB to uses when TBufDataset or TCSVDataset are added. Issue #29733.
  • r65441 DockedFormEditor: Fixed wrong ShowHint value when switching from tab Code to tab Form. Issue #39217
  • r65442 DockedFormEditor: Disable CM_PARENTSHOWHINTCHANGED for all WidgetSets. Issue #39217
  • r65443 DockedFormEditor: Use correct WidgetSet Win32 instead of Windows
  • r65448 DockedFormEditor: Check for WidgetSet LCLWin32 and LCLWin64. Issue #39222
  • r65449 LazUtils: Restore function KOI8ToUTF8, earlier renamed as KOI8RUToUTF8, and deprecate it.
  • r65314 Examples/address_book: Fix compilation. Remove hard-coded MS font.
  • r65315 Examples/bidi: Fix layout issue due to overlapping controls.
  • r65316 Examples/dblookup: Fix compilation.
  • r65336 examples: Remove a writeln from checkbox demo.
  • r65337 examples: Fix typo in TestAll demo.
  • r65338 examples/mssql: Fix compilation
  • r65355 LCL/TPageControl: Add new method "Clear" to remove all pages.
  • r65362 docs/lcl: Add documentation for the new method TPageControl.Clear.
  • r65366 docs/lcl: Merge the two TPageControl.Clear doc versions from r65362 and 65358.
  • r65375 LCL/TColorDialog: Show Title property. Issue #39155, based on code submitted by jamie in,55236.msg410713.html#msg410713
  • r65454 LCL/ShellTreeView: Speed-up of populating a folder with many subfolders (example: c:\Windows\WinSxS)
  • r65455 LCL/ShellTreeView: Speed-up when opening a node with many subfolders a second time.
  • r65376 TAChart: Update xml help.
  • r65379 TAChart: Decode system colors in text elements.
  • r65384 TAChart: Add method GetAxisRange to determine the range of an axis covered by all series assigned to it.
  • r65385 TAChart: Use real axis limits in ChartEditor demo.
  • r65389 TAChart: Rename TChart.GetAxisRange to .GetAllSeriesAxisLimits (more precise).
  • r65391 TAChart/ChartEditor demo: Check that axis maximum is always greater than the minimum.
  • r65393 TAChart/ChartEditor demo: Fix bug in handling of axis.Inverted.
  • r65394 TAChart: Update xml doc.
  • r65420 TAChart/ChartEditor demo: Fix update of axis grid visibility.
  • r65421 TAChart/ChartEditor demo: Fix axis lines not being updated.
  • r65422 TAChart: Always draw axis arrows with solid pen.
  • r65423 TAChart: Fix usage of axistransformations in ChartLiveView having ExtentY = lveAuto.
  • r65425 TAChart: Fix initialization error in TChartLiveView when ExtentY is lveAuto.
  • r65427 TAChart: Fix axis scaling of TChartLiveView with coincident axis limits and ExtentY = lveAuto.
  • r65431 TAChart/ChartEditor demo: add forgotten lfm file.
  • r65440 TAChart/ChartLiveView: Fix autoscaling when multiple axes are used. Add new ExtentY mode, lveMultiAxisRange
  • r65453 TAChart/TChartLiveView: Add some comments. Add xml documentation.
  • r65456 TAChart/TChartLiveView: Simplify operation of ExtentY modes.
  • r65463 TAChart/TChartLiveView: Fix operation when axes have a predefined Range. Modified patch by forum user Muso (,55266.msg412075.html#msg412075)
  • r65468 LazReport: Fix compilation of ZeosDB
  • r65469 IDE: Fix compiling with FPC trunk. The removed code was only active in fpc trunk 3.1.1 [r36768-r38658)
  • r65470 TAChart/TChartLiveView: Simplification
  • r65471 TAChart/LiveView demo: fix typo.
  • r65473 LCL: Fix TListView selection on Windows with MultiSelect=True and OwnerData=True. Issue #34877.
  • r65474 LCL: Make ListView.Selected return the first selected item also when OwnerData=True.
  • r65475 FpDebug, Windows: Forward OutputDebugString to IDE.
  • r65479 GdbMiDebugger: fixed reporting OutputDebugString messages
  • r65488 FpDebug: remove double line break from formatted watches.
  • r65489 Debugger: Remove linefeeds for locals dialog. Issue #0039212
  • r65490 Add DbgS for FormStyle.
  • r65491 AnchorDocking: Don't set FormStyle to fsStayOnTop for modal shown windows to prevent showing it in front of other applications. E.G. in IDE Tools -> Desktops.
  • r65496 TAChart: Fix default value of TChartTitle.Brush.Color
  • r65499 TAChart: Add methods StoreAxisRange() and RestoreAxisRange() to LiveView component.
  • 3e9e3ecc6c, 4d4485f209, c7508cbbf3, 543b3ba2af, bb47f65547, 145bf90ea6, 9d48c0eff5, 862cedaca9, 03b41f9ef2, bc7d6df12a, 172b6d5464, ac39e408c7, 5db1922e37, 0467d7cf0f, fb27fcd12a Documentation updates.
  • 3313ccc17c Adds and updates grids, dbgrids topics for merges to fixes_2_2.
  • 10c474f730 Documentation updates.
  • ce63f619 Qt,Qt5: Fixed slowness with TListBox.Issue #39311
  • 5466d422 Qt,Qt5: Fixed checkboxes states after sorting in TListView. Issue #38137 Reverted since it cannot be compiled in fixes_2_2 !
  • fcf36153 Qt,Qt5: fixed changing TMenuItem.ImageIndex inside main menu. Issue #37608
  • 31c207d9ed, 59b2adcee3, f8fae99933, 510899de02 Documentation updates.
  • 5ae19e4e88, acf31c45b6, 4ff5c00578, 64fdfecf46 Documentation updates.
  • a84e602a Qt5: Additional theme drawing fix for issue Issue #38356
  • 63ca7a9a Qt5: Fixed AV when changing TListView.ViewStyle in design time. Issue #39353
  • 2473e77422 Documentation updates.
  • e1be3c5608ee03f5c IDE: Update DefineTemplates after switching build mode. Issue #39347
  • 655bd2ba0d, 6c8e9f0867, fc99cfa6ee, 19b127a2b1, 0f5ed91814 Documentation updates.
  • 515da224 Qt5: fixed doubled menu items in IDE. Issue #39364
  • fc685470 Qt5: implemented TCustomMemo.setCaretPos(). Patch by Joeny Ang. Issue #39373
  • a7ee5a544d, 3b9cfa9943, 34bef0cbf9, 6a29f96cec Documentation updates.
  • 6eca378f9d101199cc429c67420ee59739f72274 TListView: call OnDeletion also when destroying. Issue #39391.
  • 5a1abf733a7 LazUtils: Check for Pascal keywords in LazIsValidIdent. Must be prepended with '&'. Merge Request !11 by Abdullahi Usman.
  • f6b7ba26622 Designer: Prevent an illegal name for a component when "Ask name on create" is enabled. Issue #39292.
  • 92c69567 , 059c77a6 , 86a3ea83 Documentation updates.
  • 45a590ed0b9b6 Revert partly "Add HookGetCheckboxForBoolean handler in OI only once." Issue #39378
  • b7ab9549a64 IdeIntf: Improve recursion in TComponentTreeView.FindAndChange. Call RebuildCollection only once per deleted comp. Issue #39290.
  • 907f8248 IDE: When completing a label, add a colon (':') after it. Issue #38307.
  • a8a398e553 PascalScript: Fix event TPSOnProcessDirective signature. Active clashed with TForm.Active. Issue #39359.
  • 1d0d348cf6 Documentation updates.
  • de4f724924255 Revert checking for Pascal keywords in LazIsValidIdent which is used also for unit names etc. Prevent illegal name by other means.
  • 1c0f3e699c Docs: LazUtils/lazstringutils. Updates LazIsValidIdent for revert in de4f7249.
  • 824e696005 IDE: Remove Assert() that prevented adding source files with errors in them. Issue #22921.
  • 7cb38d7bc6 IDE: Check Filename<>UnitName mismatch only when Codetools was able to parse the source. Issue #22921.
  • ee4324bbe5 Documentation updates.
  • b379bae7 OpkMan: fix readability of hint window on dark themes, remove hardcoded colors...
  • 24ababf578 Docs: LCL. Updates topics to reflect code changes in 865013ee.
  • f120539d03 LCL-GTK3: Show applications better under KWin. Issue #39367.
  • 555a0bb5fc CodeTools: Support case-insensitive {$Align X} etc. directives. Issue #39339.
  • 736e71078e Docs: LCL/filectrl. Updates MinimizeName to specify that the width argument is pixels and not characters.
  • a669e084 TComboBox: update ItemIndex in RealSetText also if Text is empty string. Issue #39366.
  • 2e98d119 T(Float)SpinEditEx: set Modified to False if Value is set programmatically.
  • abd3cd5c T(Float)SpinEdit: set Modified to False if Value is set programmatically.
  • e868afe1 T(Float)SpinEditEx: set make sure Modified is correct in OnChange event as well.
  • 16c42cea T(Float)SpinEditEx: forgotten to commit file in e868afe1.
  • 2befd9dd T(Float)SpinEdit: make Modified have the correct value in OnChange as well.
  • f77ea526e4 Docs: LCL/stdctrls. Updates topics for issue #39413. Depends on a669e084.
  • 335ac8b724 Docs: LazControls/spinex. Updates topics for recent source code changes.
  • cc0c03af28 Docs: LCL/spin. Adds and updates topics for changes in abd3cd5c, 2befd9dd.
  • 0ca9443df0 Update
  • d753efec99 Update
  • e8317fb5 Qt,Qt5: fixed problem with drawing primitives when antialiasing enabled. Issue #39416
  • 8c248da41d IDE: Disable Project Options command while compiling many build modes. Issue #39332.
  • b6a4282835 IDE: Execute a shortcut command only when it is enabled.
  • 29fa1e50 Qt,Qt5: fixed maximized window with borderstyle = bsnone. Issue #39158
  • 26930d85 Qt,Qt5: fixed antialias drawing of ellipse and polygon. Issue #35568, part of Issue #39416
  • e42dfcff Qt5: fixed typo.
  • e67c74ed7e IDE: Disable Project Options toolbuttons while compiling many build modes. Issue #39332.
  • 4204b2bd DockedFormEditor: Remove invalid widgetset LCLWin64
  • 6439e19d40 JEDI Code Formatter: Support a list of used registers at the end of "asm" block. Issue #35722.
  • e027061cb5 Docs: LCL/controls. Adds short descriptions for various topics.
  • c822e578 Qt,Qt5: fixed radialPie paint with antialiasing. Issue #39416
  • 52f2a8b8 Qt,Qt5: Fixed menu radio items. Issue #37741
  • 4076f4ef Qt,Qt5: fixed palette change at runtime. Issue #38589
  • a058e53864 Docs: LCL/menus. Adds missing topic content.
  • 7fa32a1e Qt5: optimized palette reload instead of calling recreateWnd(). Issue #38589
  • b83a9fd9 Qt5: implemented T(Float)SpinEdit.EditorEnabled. Issue #38736
  • 9233efad Qt: optimized palette reload instead of recreating handles. Issue #38589
  • e5ed5082d5 Docs: LazControls/checkboxthemed. Updates TCustomCheckBoxThemed.State to reflect actions in the property setter.
  • d21ebb1b Qt,Qt5: removed old workaround for Qt < 4.8.7, fixes TApplication activate/deactivate events. Issue #37868 Issue #29294
  • f1156f55 Qt,Qt5: ReleaseCapture when app is deactivated.
  • 5081a526 Qt,Qt5: restored the way how we send application activate/deactivate to LCL, removed calling of RestoreStayOnTop windows which cause confusion.
  • fea136a894 Docs: LazControls/listviewfilteredit. Removes extra short description in module topic.
  • 99e4bd2515 LCL-GTK2: Use a new SysTray API by default. The old one fails to work in new Ubuntu versions + derivatives.
  • 14304e8180 LCL: Fix typos in virtual key constants. Issue #39434
  • 622a7619d0 Docs: LCL/lcltype. Adds missing topics. Removes topics no longer in source. Updates topic content.
  • 9057aece Qt,Qt5: fixed system mouse lock when TCustomControl is double clicked. Issue #27384
  • 7f0e0cd0 Qt,Qt5: fixed broken TTrayIcon popup menu after recreating popup menu handle. Issue #38849
  • 64ccfb3fd2 Docs: Updates module topics for LCL and LazUtils to include both name and abbreviation.
  • e6e2178c LCL/Menus: Fix owner-drawn menu having zero item size if not specified by OnMeasureItem. Issue #35972, patch by dmz73.

Fixes for 2.2.0RC1 (merged)

  • r65243, 65249, 65254-65256, 65261-65271, 65274, 65278-65279, 65281, 65290, 65293, 65297, 65300, 65305, 65317, 65325, 65328, 65335, 65339, 65358, 65367 Documentation updates
  • r65248 Qt: removed unsupported QString_toHtmlEscaped. Issue #38982.
  • r65275 CodeTools: Allow a "var" section inside a record with {$modeswitch advancedrecords}. Issue #38957.
  • r65303 LCL: Revert revision 63847, fixing FormShow call at wrong time. Issue #38922
  • r65304 IDE: Remove EnvironmentOptions.DesignerPaintLazy to prevent paintings outside OnPaint resulting in painting artefacts. Fixes issue #23741 and #33781
  • r65306 IDE: regenerated translations
  • r65311,r65312,r65318 IDE: Implement multi-line selection in Messages window. Issue #35493
  • r65319 IDE: Update DefineTemplates (package graph) after adding a component, in case its package was not used earlier.
  • r65320 Fix spelling errors in grids.pas. Patch by Don Siders. Issue #0039093.
  • r65329 Converter: Replace Mask with Masks, not MaskEdit.
  • r65330 IDE: Generate Dwarf3 for Debug build mode and for debug profile for the IDE itself.
  • r65341 IdeIntf: Disable copy/paste of TMenuItem in Object Inspector tree because it does not work for some reason. Issue #19530.
  • r65342 IDE: Use Dwarf3 debug format for our projects. Needed when debugging with FPDebug.
  • r65348 SQLdb: added pqteventmonitor.pas unit to LPK, bug 39097
  • r65354 IdeIntf: Disable copy/paste of TAction in Object Inspector tree because it does not work for some reason. Issue #19530.
  • r65372 Translations: Brazilian Portuguese translation update by Marcelo B Paula, bug 39152
  • r65374 Fix spelling errors in lclproc.pas. Patch by Don Siders. Issue #0039161.
  • r65378 AnchorDocking DragNDrop of pages not working on GTK2. Issue #39166
  • r65412 win installer: EnvironmentOpt.xml: Fix gdb location for windows (new installation)
  • r65413 make component: compile freetype before lazcontrols
  • r65414 lcl: updated Makefile.compiled
  • r65415 lcl: updated Makefile.compiled
  • r65416 lcl: updated Makefile.compiled with freetype
  • r65417 lcl: fix makefile path for freetype
  • r65418 Installer, Win: fix cross build flags
  • r65419 Installer, Win: fix cross build, include package buildintf

Roadmap to 2.2

The release process will consist of the following steps.

  • Creation of the SVN 2.2 fixes branch. (Done 15 Jun 2021)

This is the start of the stabilization process before a new Lazarus release.

  • Release of 2.2.0 RC 1 (ToDo)

This will be the first Release Candidate. We would like to urge all users to test this version. The testing period is scheduled to last 2 weeks.

  • Release of 2.2.0 RC 2 (ToDo)

The testing period is scheduled to last 2 weeks.

  • Release of 2.2.0 RC 3 (ToDo)

The testing period is scheduled to last 2 weeks.

  • Release of Lazarus 2.2 (ToDo)

Users can download the new stable version.


  • Menu item exists
  • Clear pcp directory and start IDE, a new project application with a form should be visible
  • Double click on form - a FormCreate event should be created
  • Check View / IDE internals / What needs building - no package should need building, only the project
  • Restart the IDE - there should be no warning about upgrading
  • Install the package cody, after restart the component palette should show the component TCodyTreeView
  • Run Unit-Tests from menu "Tools"--> "Example Projects". Choose project "runtestsgui.lpi" and run it. It will do about 390 unittests.

Tagging release

  • GIT merge requests of this page
  • For a RC tag in gitlab before increasing the version in the sources 'tagged 2.2.0RC2 as lazarus_2_2_0_RC2'
  • set version in fixes_2_2 branch:
    • open lazarus/lazarus.lpi in the IDE and change the version numbers in the project options dialog for RC1, for RC2, for RC3, for final
    • lazarus/ide/ 2.2.0RC1 for RC1, no spaces! (2.2.0 for final release)
    • lazarus/components/lazutils/lazversion.pas for RC1, for RC2, ... for final
    • lclbase.lpk
    • lcl.lpk
    • lazarus/
      • CFBundleShortVersionString "2.2.0"
      • CFBundleVersion 1 for RC1, 2 for RC2, 3 for RC3, 4 for final release
    • tools/install/linux/environmentoptions.xml same as
    • tools/install/win/environmentoptions.xml same as
    • tools/install/macos/environmentoptions.xml same as
    • check lpl files by running "./tools/lplupdate -c" and do the git mv commands
    • Update makefiles: Make sure Additions and Overrides are empty and run
FPCDIR=/path/to/fpc/src/trunk PATH=/path/trunk/fpc/utils/fpcm/bin/x86_64-linux/:$PATH ./tools/updatemakefiles
  • check that ide/lazarus.lpi and ide/lazarus.res have changed:
git status
  • git commit -m 'set fixes version to 2.2.0RC1'
  • For a non RC release:
    • Tag fixes_2_2 branch in gitlab to lazarus_2_2_0_RC1 (or lazarus_2_2_0 for final release)
    • Set version to next version in git main
  • Create new section on this page and move waiting merge requests to the new section
  • upload packages
  • update checksums: site/pages/checksums.html
  • every 5min a preview can be viewed here:
  • Mail to Marc to update website from svn

Other branches