Corrigi alguns bugs em 3 arquivos da LCL e gostaria de compartilhar. Obs.: as modificações foram feitas em cima do Lazarus 1.0.8; recomendo se possível alterar apenas as procedures indicadas abaixo:
lcl/include/dbcustomnavigator.inc
Um cast incorreto em TDBCustomNavigator.ButtonClickHandler estava impedindo a opção navFocusableButtons de funcionar.
Solução: coloquei um if para verificar qual o cast deveria ser feito.
lcl/dbgrids.pas
Em TCustomDBGrid.EditorCanAcceptKey não estava sendo considerada a tecla Backspace, impedindo o usuário de usá-la em campos numéricos.
Solução: acrescentei a verificação para o caractere código 8 (backspace)
lcl/grids.pas
Modifiquei dois métodos: TCustomGrid.SetFocus e TCustomGrid.DoEditorHide.
Com a opção dsAlwaysShowEditor ativada, quando eu faço um SetFocus o foco não ia para o editor.
Solução: modifiquei para o foco ir para o editor e para voltar para o DBGrid quando o editor é ocultado.