mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-22 10:59:29 +02:00
* fixed obscure bug #12695 where gtk2 listview caused a crash
git-svn-id: trunk@17554 -
This commit is contained in:
parent
332817a926
commit
f05a37586c
@ -60,6 +60,7 @@ type
|
||||
cell_area: PGdkRectangle;
|
||||
expose_area:PGdkRectangle;
|
||||
flags: TGtkCellRendererState); cdecl;
|
||||
DefaultFinalize: procedure(aObject: PGObject); cdecl;
|
||||
end;
|
||||
|
||||
function LCLIntfCellRenderer_GetType: TGtkType;
|
||||
@ -295,6 +296,12 @@ begin
|
||||
//DebugLn(['LCLIntfCellRenderer_Render END ',DbgSName(LCLObject)]);
|
||||
end;
|
||||
|
||||
procedure LCLIntfCellRenderer_ClassFinalize(aObject: PGObject); cdecl;
|
||||
begin
|
||||
PGtkCellRendererText(aObject)^.text := nil;
|
||||
PLCLIntfCellRendererClass(G_OBJECT_GET_CLASS(aObject))^.DefaultFinalize(aObject);
|
||||
end;
|
||||
|
||||
procedure LCLIntfCellRenderer_ClassInit(aClass: Pointer); cdecl;
|
||||
//aClass: PLCLIntfCellRendererClass
|
||||
var
|
||||
@ -306,6 +313,8 @@ begin
|
||||
RendererClass := GTK_CELL_RENDERER_CLASS(aClass);
|
||||
LCLClass^.DefaultGtkGetSize := RendererClass^.get_size;
|
||||
LCLClass^.DefaultGtkRender := RendererClass^.render;
|
||||
LCLClass^.DefaultFinalize := PGObjectClass(RendererClass)^.finalize;
|
||||
PGObjectClass(RendererClass)^.finalize := @LCLIntfCellRenderer_ClassFinalize;
|
||||
RendererClass^.get_size := @LCLIntfCellRenderer_GetSize;
|
||||
RendererClass^.render := @LCLIntfCellRenderer_Render;
|
||||
end;
|
||||
@ -316,6 +325,7 @@ procedure LCLIntfCellRenderer_Init(Instance:PGTypeInstance;
|
||||
// theClass: PLCLIntfCellRendererClass
|
||||
begin
|
||||
//DebugLn(['LCLIntfCellRenderer_Init ']);
|
||||
PGtkCellRendererText(Instance)^.text := nil;
|
||||
end;
|
||||
|
||||
function LCLIntfCellRenderer_GetType: TGtkType;
|
||||
|
@ -1004,6 +1004,8 @@ begin
|
||||
GetCommonTreeViewWidgets(PGtkWidget(ALV.Handle), Widgets);
|
||||
with Widgets^ do
|
||||
begin
|
||||
if gtk_widget_realized(MainView) = False then
|
||||
exit;
|
||||
Path := gtk_tree_path_new_from_indices(AIndex, -1);
|
||||
gtk_tree_view_get_cell_area(PGtkTreeView(MainView), Path, nil, @ItemRect);
|
||||
gtk_tree_path_free(Path);
|
||||
|
Loading…
Reference in New Issue
Block a user