We used Bookworm (Debian 12.2) GIR files constrained the units version
to Bullseye (Debian 11.6) shipped libraries.
They were generated using the following command:
```sh
gir2pas -P Laz -e Set -w \
-M atk-2.36 \
-M pango-1.16 \
-M pangocairo-1.46 \
-M glib-2.66 \
-M gio-2.66 \
-M gmodule-2.66 \
-M gobject-2.66 \
-M gtk-3.24 \
-i /usr/share/gir-1.0/Gtk-3.0.gir \
-o lazarus/lcl/interfaces/gtk3/gtk3bindings
```
Some old code was manually added and was kept for backward compatibility
with old interface code. It will be removed later.
We used Bookworm (Debian 12.2) GIR files constrained the units version
to Bullseye (Debian 11.6) shipped libraries.
They were generated using the following command:
```sh
gir2pas -P Laz -e Set -w \
-M atk-2.36 \
-M pango-1.16 \
-M pangocairo-1.46 \
-M glib-2.66 \
-M gio-2.66 \
-M gmodule-2.66 \
-M gobject-2.66 \
-M gtk-3.24 \
-i /usr/share/gir-1.0/PangoCairo-1.0.gir \
-o lazarus/lcl/interfaces/gtk3/gtk3bindings
```
Some code was manually added at the end of the interface section to keep
backward compatibility with old, manually translated unit.
Instead, `Export` button now opens file save dialog in user key scheme subdirectory ('userkeyschemes') of Lazarus settings directory. This behavior is similar to how color schemes are handled.
Thus, user is able to edit scheme, export it and then immediately select it if desired (even without IDE restart). To load an external scheme, user should put it to key scheme subdirectory of Lazarus settings directory and select it in Lazarus settings (no IDE restart needed).
1. Fix access violation on closing IDE when loaded user key scheme is present.
2. Correctly load user key scheme on IDE (re)start.
3. Search user key schemes in `userkeyschemes` subdirectory of Lazarus configuration directory.
Based on patch by Dean Mustakinov, part of issue #40559.
We constrained the units version to Bullseye (Debian 11.6) shipped
libraries.
They were generated using the following command:
```sh
gir2pas -P Laz -e Set
-M atk-2.36 \
-M pango-1.16 \
-M pangocairo-1.46 \
-M glib-2.66 \
-M gio-2.66 \
-M gmodule-2.66 \
-M gobject-2.66 \
-M gtk-3.24 \
-i /usr/share/gir-1.0/PangoCairo-1.0.gir \
-o lazarus/lcl/interfaces/gtk3/gtk3bindings
```
Some code was manually added at the end of the interface section to keep
backward compatibility with old, manually translated unit.