Workaround for #10040: wxGrid scrolls back to the previous edit position
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@66945 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -8636,6 +8636,11 @@ void wxGrid::ShowCellEditControl()
|
|||||||
editor->GetControl()->GetPosition().y );
|
editor->GetControl()->GetPosition().y );
|
||||||
editor->Show( true, attr );
|
editor->Show( true, attr );
|
||||||
|
|
||||||
|
#ifdef __WXGTK20__
|
||||||
|
int px, py;
|
||||||
|
GetViewStart(& px, & py);
|
||||||
|
#endif
|
||||||
|
|
||||||
// recalc dimensions in case we need to
|
// recalc dimensions in case we need to
|
||||||
// expand the scrolled window to account for editor
|
// expand the scrolled window to account for editor
|
||||||
CalcDimensions();
|
CalcDimensions();
|
||||||
@@ -8645,6 +8650,14 @@ void wxGrid::ShowCellEditControl()
|
|||||||
|
|
||||||
editor->DecRef();
|
editor->DecRef();
|
||||||
attr->DecRef();
|
attr->DecRef();
|
||||||
|
|
||||||
|
#ifdef __WXGTK20__
|
||||||
|
// On GTK+, erroneous scrolling to the old control
|
||||||
|
// position can happen when the grid window gets a
|
||||||
|
// focus event and this is processed by wxScrollHelper.
|
||||||
|
// This line resets the scroll position.
|
||||||
|
Scroll(px, py);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user