mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-30 09:43:39 +02:00
![]() The 'pixbuf' field in GtkCellRendererPixbuf is supposed to be private to
Gtk which handles refcounting itself, but LCL modifies it directly which
can cause refcounting mismatches, especially during the destruction of a
listview with icons (images are unref'd by both the listview destructor
and gtk itself). Since it is exposed as a property it can be modified
using the g_object_set_property and g_value_xxx APIs which handle any
necessary refcounting, so this patch replaces the direct modification of
the pixbuf field with these APIs. This fixes the crashes due to
refcounting mismatch.
(cherry picked from commit
|
||
---|---|---|
.. | ||
tests | ||
alllclintfunits.pas | ||
dragicons.inc | ||
gtk2callback.inc | ||
gtk2cellrenderer.pas | ||
gtk2debug.pp | ||
gtk2def.pp | ||
gtk2defines.inc | ||
gtk2devicecontext.inc | ||
gtk2disableliboverlay.pas | ||
gtk2extra.inc | ||
gtk2extra.pp | ||
gtk2extrah.inc | ||
gtk2fontcache.pas | ||
gtk2globals.pp | ||
gtk2int.pas | ||
gtk2lclintf.inc | ||
gtk2lclintfh.inc | ||
gtk2listsl.inc | ||
gtk2listslh.inc | ||
gtk2listviewtreemodel.pas | ||
gtk2memostrings.inc | ||
gtk2msgqueue.pp | ||
gtk2pagecontrol.inc | ||
gtk2privatelist.inc | ||
gtk2privatewidget.inc | ||
gtk2proc.inc | ||
gtk2proc.pp | ||
gtk2stdpixmaps.inc | ||
gtk2themes.pas | ||
gtk2trayicon.inc | ||
gtk2widgetset.inc | ||
gtk2winapi.inc | ||
gtk2winapih.inc | ||
gtk2winapiwindow.pp | ||
gtk2windows.pas | ||
gtk2wsbuttons.pp | ||
gtk2wscalendar.pp | ||
gtk2wschecklst.pp | ||
gtk2wscomctrls.pp | ||
gtk2wscontrols.pp | ||
gtk2wscustomlistview.inc | ||
gtk2wscustommemo.inc | ||
gtk2wsdialogs.pp | ||
gtk2wsextctrls.pp | ||
gtk2wsextdlgs.pp | ||
gtk2wsfactory.pas | ||
gtk2wsforms.pp | ||
gtk2wsgrids.pp | ||
gtk2wsimglist.pp | ||
gtk2wsmenus.pp | ||
gtk2wspairsplitter.pp | ||
gtk2wsprivate.pp | ||
gtk2wsspin.pp | ||
gtk2wsstdctrls.pp | ||
interfaces.pas | ||
issues.xml | ||
Makefile | ||
Makefile.compiled | ||
Makefile.fpc | ||
README.txt | ||
TODOS.txt | ||
unitywsctrls.pas |
The gtk2 interface for lazarus ============================== The gtk2 interface for lazarus is a descendant of the gtk interface. It is not yet complete. For those who want to help us here are some hints: With fpc 1.9.7 the gtk2 bindings are included, so forget the packages. To compile the gtk2 interface just set Tools -> Configure Build Lazarus -> LCL interface to 'gtk2' Creating a test project: Create a new lazarus application. This project will be used to test the gtk2 interface and to store all configuration steps. Then open the compiler options and set as widget type 'gtk2'.