From ecd4526b30d3dc27ca40e5c0113ea423e427fcef Mon Sep 17 00:00:00 2001 From: Chris Elliott Date: Wed, 14 Dec 2011 08:52:48 +0000 Subject: [PATCH 1/4] 2.9.3 version git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69999 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- build/tools/bld_chm_exe.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/tools/bld_chm_exe.bat b/build/tools/bld_chm_exe.bat index d3a8b20556..4b634f9a98 100644 --- a/build/tools/bld_chm_exe.bat +++ b/build/tools/bld_chm_exe.bat @@ -1,5 +1,5 @@ rem Uncomment the next line to set the version; used also in wxWidgets.iss -SET WXW_VER=2.9.3-rc2 +SET WXW_VER=2.9.3 if (%WXW_VER%)==() SET WXW_VER=SVN echo docs building for %WXW_VER% From 78e18e8d531520da97daa326f014c03b04db534f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Wed, 14 Dec 2011 15:53:25 +0000 Subject: [PATCH 2/4] Ensure that current column is visible in generic wxDataViewCtrl. When navigating between columns using keyboard, ensure visibility of the newly selected column. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70000 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/datavgen.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index 8b1b000778..ee37a90226 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -3775,6 +3775,8 @@ bool wxDataViewMainWindow::TryAdvanceCurrentColumn(wxDataViewTreeNode *node, boo if ( idx >= (int)GetOwner()->GetColumnCount() ) return false; + GetOwner()->EnsureVisible(m_currentRow, idx); + if ( idx < 1 ) { // We are going to the left of the second column. Reset to whole-row From eff1c3e8ec093b83b61d04d543d8ff37792a31f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Wed, 14 Dec 2011 15:53:28 +0000 Subject: [PATCH 3/4] Don't change horizontal scroll position needlessly in wxDataViewCtrl. When ScrollTo() or EnsureVisible() was called in the generic wxDataViewCtrl implementation with unspecified column, horizontal scroll position was reset to left-most position, which doesn't make much sense. Instead, leave horizontal position unchanged in this case and only change it when explicitly requested. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70001 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/datavgen.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/generic/datavgen.cpp b/src/generic/datavgen.cpp index ee37a90226..99763c1787 100644 --- a/src/generic/datavgen.cpp +++ b/src/generic/datavgen.cpp @@ -2433,7 +2433,7 @@ void wxDataViewMainWindow::ScrollTo( int rows, int column ) int x, y; m_owner->GetScrollPixelsPerUnit( &x, &y ); int sy = GetLineStart( rows )/y; - int sx = 0; + int sx = -1; if( column != -1 ) { wxRect rect = GetClientRect(); From a85b4023d15183d826fec483d573eae6464e4942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?V=C3=A1clav=20Slav=C3=ADk?= Date: Wed, 14 Dec 2011 16:00:30 +0000 Subject: [PATCH 4/4] Close wxDataViewCtrl inline editor when destroying the control. If the wxDataViewCtrl control was destroyed while an inline editor control was still active, it wouldn't get destroyed in the right order and the ~wxWindow assert about unpopped event handlers would be triggered. Fix this by popping the handler as one of the first things in wxDataViewRendererBase destructor. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70002 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/datavcmn.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/common/datavcmn.cpp b/src/common/datavcmn.cpp index febc1d1bf4..79b97c5c41 100644 --- a/src/common/datavcmn.cpp +++ b/src/common/datavcmn.cpp @@ -672,6 +672,8 @@ wxDataViewRendererBase::wxDataViewRendererBase( const wxString &varianttype, wxDataViewRendererBase::~wxDataViewRendererBase() { + if ( m_editorCtrl ) + DestroyEditControl(); } wxDataViewCtrl* wxDataViewRendererBase::GetView() const @@ -740,6 +742,8 @@ void wxDataViewRendererBase::DestroyEditControl() wxPendingDelete.Append(handler); wxPendingDelete.Append(m_editorCtrl); + + m_editorCtrl = NULL; } void wxDataViewRendererBase::CancelEditing()