don't steal focus back to wxGrid when it hides an editor in the result of losing it (#9844)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@55632 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -128,6 +128,7 @@ All (GUI):
|
|||||||
- Allow period in link anchors in wxHTML.
|
- Allow period in link anchors in wxHTML.
|
||||||
- Fixed memory corruption in wxHTML when parsing "&;" in the markup.
|
- Fixed memory corruption in wxHTML when parsing "&;" in the markup.
|
||||||
- Fixed event type in EVT_GRID_CMD_COL_MOVE and EVT_GRID_COL_MOVE.
|
- Fixed event type in EVT_GRID_CMD_COL_MOVE and EVT_GRID_COL_MOVE.
|
||||||
|
- wxGrid doesn't steal focus when hiding editor any more (Tom Eckert).
|
||||||
|
|
||||||
All (Unix):
|
All (Unix):
|
||||||
|
|
||||||
|
@@ -8590,11 +8590,19 @@ void wxGrid::HideCellEditControl()
|
|||||||
|
|
||||||
wxGridCellAttr *attr = GetCellAttr(row, col);
|
wxGridCellAttr *attr = GetCellAttr(row, col);
|
||||||
wxGridCellEditor *editor = attr->GetEditor(this, row, col);
|
wxGridCellEditor *editor = attr->GetEditor(this, row, col);
|
||||||
|
const bool
|
||||||
|
editorHadFocus = wxWindow::FindFocus() == editor->GetControl();
|
||||||
editor->Show( false );
|
editor->Show( false );
|
||||||
editor->DecRef();
|
editor->DecRef();
|
||||||
attr->DecRef();
|
attr->DecRef();
|
||||||
|
|
||||||
m_gridWin->SetFocus();
|
// return the focus to the grid itself if the editor had it
|
||||||
|
//
|
||||||
|
// note that we must not do this unconditionally to avoid stealing
|
||||||
|
// focus from the window which just received it if we are hiding the
|
||||||
|
// editor precisely because we lost focus
|
||||||
|
if ( editorHadFocus )
|
||||||
|
m_gridWin->SetFocus();
|
||||||
|
|
||||||
// refresh whole row to the right
|
// refresh whole row to the right
|
||||||
wxRect rect( CellToRect(row, col) );
|
wxRect rect( CellToRect(row, col) );
|
||||||
|
Reference in New Issue
Block a user