fix for calculating the header window height (patch 805791)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@23588 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -2104,11 +2104,11 @@ void wxListTextCtrl::OnKillFocus( wxFocusEvent &event )
|
|||||||
{
|
{
|
||||||
// We must finish regardless of success, otherwise we'll get focus problems
|
// We must finish regardless of success, otherwise we'll get focus problems
|
||||||
Finish();
|
Finish();
|
||||||
|
|
||||||
if ( !AcceptChanges() )
|
if ( !AcceptChanges() )
|
||||||
m_owner->OnRenameCancelled( m_itemEdited );
|
m_owner->OnRenameCancelled( m_itemEdited );
|
||||||
}
|
}
|
||||||
|
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2846,11 +2846,11 @@ void wxListMainWindow::OnRenameCancelled(size_t itemEdit)
|
|||||||
|
|
||||||
// let owner know that the edit was cancelled
|
// let owner know that the edit was cancelled
|
||||||
wxListEvent le( wxEVT_COMMAND_LIST_END_LABEL_EDIT, GetParent()->GetId() );
|
wxListEvent le( wxEVT_COMMAND_LIST_END_LABEL_EDIT, GetParent()->GetId() );
|
||||||
|
|
||||||
// These only exist for wxTreeCtrl, which should probably be changed
|
// These only exist for wxTreeCtrl, which should probably be changed
|
||||||
// le.m_editCancelled = TRUE;
|
// le.m_editCancelled = TRUE;
|
||||||
// le.m_label = wxEmptyString;
|
// le.m_label = wxEmptyString;
|
||||||
|
|
||||||
le.SetEventObject( GetParent() );
|
le.SetEventObject( GetParent() );
|
||||||
le.m_itemIndex = itemEdit;
|
le.m_itemIndex = itemEdit;
|
||||||
|
|
||||||
@@ -4549,11 +4549,24 @@ wxGenericListCtrl::~wxGenericListCtrl()
|
|||||||
|
|
||||||
void wxGenericListCtrl::CalculateAndSetHeaderHeight()
|
void wxGenericListCtrl::CalculateAndSetHeaderHeight()
|
||||||
{
|
{
|
||||||
// we use the letter "H" for calculating the needed space, basing on the current font
|
if ( m_headerWin )
|
||||||
int w, h;
|
{
|
||||||
m_headerWin->GetTextExtent(wxT("H"), &w, &h);
|
// we use 'g' to get the descent, too
|
||||||
m_headerHeight = h + 2 * HEADER_OFFSET_Y + EXTRA_HEIGHT;
|
int w, h, d;
|
||||||
m_headerWin->SetSize(m_headerWin->GetSize().x, m_headerHeight);
|
m_headerWin->GetTextExtent(wxT("Hg"), &w, &h, &d);
|
||||||
|
h += d + 2 * HEADER_OFFSET_Y + EXTRA_HEIGHT;
|
||||||
|
|
||||||
|
// only update if there is not enough space
|
||||||
|
if ( h > m_headerHeight )
|
||||||
|
{
|
||||||
|
m_headerHeight = h;
|
||||||
|
|
||||||
|
m_headerWin->SetSize(m_headerWin->GetSize().x, m_headerHeight);
|
||||||
|
|
||||||
|
if ( HasFlag(wxLC_REPORT) && !HasFlag(wxLC_NO_HEADER) )
|
||||||
|
ResizeReportView(TRUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxGenericListCtrl::CreateHeaderWindow()
|
void wxGenericListCtrl::CreateHeaderWindow()
|
||||||
@@ -5148,7 +5161,7 @@ void wxGenericListCtrl::ResizeReportView(bool showHeader)
|
|||||||
void wxGenericListCtrl::OnInternalIdle()
|
void wxGenericListCtrl::OnInternalIdle()
|
||||||
{
|
{
|
||||||
wxWindow::OnInternalIdle();
|
wxWindow::OnInternalIdle();
|
||||||
|
|
||||||
// do it only if needed
|
// do it only if needed
|
||||||
if ( !m_mainWin->m_dirty )
|
if ( !m_mainWin->m_dirty )
|
||||||
return;
|
return;
|
||||||
|
Reference in New Issue
Block a user