Origin: http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/lcl/interfaces/gtk2/gtk2wsstdctrls.pp?r1=23028&r2=23695&pathrev=23695&root=lazarus&view=patch
Bug: http://mantis.freepascal.org/view.php?id=0015627
Description: Fixes memory leak in lazarus-ide: redo clearing of listbox
 selection
Author: Paul Ishenin, upstream
Forwarded: not-needed

Index: lazarus-0.9.28.2/lcl/interfaces/gtk2/gtk2wsstdctrls.pp
===================================================================
--- lazarus-0.9.28.2.orig/lcl/interfaces/gtk2/gtk2wsstdctrls.pp
+++ lazarus-0.9.28.2/lcl/interfaces/gtk2/gtk2wsstdctrls.pp
@@ -475,16 +475,6 @@
   WidgetInfo: PWidgetInfo;
   Selection: PGtkTreeSelection;
   Path: PGtkTreePath;
-
-  procedure ClearCursor; inline;
-  begin
-    if gtk_tree_row_reference_valid(PGtkTreeView(Widget)^.priv^.cursor) then
-    begin
-      gtk_tree_row_reference_free(PGtkTreeView(Widget)^.priv^.cursor);
-      PGtkTreeView(Widget)^.priv^.cursor := nil;
-    end;
-  end;
-  
 begin
   if not WSCheckHandleAllocated(ACustomListBox, 'SetItemIndex') then
     Exit;
@@ -510,7 +500,9 @@
   end
   else
   begin
-    ClearCursor;
+    Path := gtk_tree_path_new_from_indices(0, -1);
+    if PGtkTreeView(Widget)^.priv^.tree <> nil then
+      gtk_tree_view_set_cursor(PGtkTreeView(Widget), Path, nil, False);
     gtk_tree_selection_unselect_all(Selection);
   end;
 
