Index: src/fileviews/ucolumnsfileview.pas
===================================================================
--- src/fileviews/ucolumnsfileview.pas	(revision 7616)
+++ src/fileviews/ucolumnsfileview.pas	(working copy)
@@ -38,7 +38,9 @@
     procedure SetGridVertLine(const AValue: Boolean);
 
   protected
+    {$IF lcl_fullversion < 1090000}
     function SelectCell(aCol, aRow: Integer): Boolean; override;
+    {$ENDIF}
     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
     procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X,Y: Integer); override;
     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
@@ -1924,6 +1926,8 @@
     Options := Options - [goVertLine];
 end;
 
+{$IF lcl_fullversion < 1090000}
+// Workaround for Lazarus issue 31942.
 function TDrawGridEx.SelectCell(aCol, aRow: Integer): Boolean;
 begin
   Result:= inherited SelectCell(aCol, aRow);
@@ -1934,6 +1938,7 @@
     SetColRow(aCol, aRow);
   end;
 end;
+{$ENDIF}
 
 function TDrawGridEx.GetVisibleRows: TRange;
 var
Index: src/fileviews/ufileviewwithgrid.pas
===================================================================
--- src/fileviews/ufileviewwithgrid.pas	(revision 7616)
+++ src/fileviews/ufileviewwithgrid.pas	(working copy)
@@ -19,6 +19,9 @@
   protected
     FFileView: TFileViewWithGrid;
   protected
+    {$IF lcl_fullversion < 1090000}
+    function SelectCell(aCol, aRow: Integer): Boolean; override;
+    {$ENDIF}
     procedure RowHeightsChanged; override;
     procedure ColWidthsChanged;  override;
     procedure FinalizeWnd; override;
@@ -183,6 +186,20 @@
   inherited KeyDown(Key, Shift);
 end;
 
+{$IF lcl_fullversion < 1090000}
+// Workaround for Lazarus issue 31942.
+function TFileViewGrid.SelectCell(aCol, aRow: Integer): Boolean;
+begin
+  Result:= inherited SelectCell(aCol, aRow);
+  // ScrollToCell hangs when Width = 0
+  if Width = 0 then
+  begin
+    Result:= False;
+    SetColRow(aCol, aRow);
+  end;
+end;
+{$ENDIF}
+
 procedure TFileViewGrid.RowHeightsChanged;
 begin
   inherited RowHeightsChanged;
