Merge branch 'dvc-col-update'
Avoid recursively updating wxHeaderColumns during resize in the generic wxDataViewCtrl implementation. See https://github.com/wxWidgets/wxWidgets/pull/1711
This commit is contained in:
@@ -150,6 +150,10 @@ public:
|
|||||||
UpdateWidth();
|
UpdateWidth();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This method is also internal and called when the column is resized by
|
||||||
|
// user interactively.
|
||||||
|
void WXOnResize(int width);
|
||||||
|
|
||||||
int WXGetManuallySetWidth() const { return m_manuallySetWidth; }
|
int WXGetManuallySetWidth() const { return m_manuallySetWidth; }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@@ -331,7 +335,11 @@ public: // utility functions not part of the API
|
|||||||
// update the display after a change to an individual column
|
// update the display after a change to an individual column
|
||||||
void OnColumnChange(unsigned int idx);
|
void OnColumnChange(unsigned int idx);
|
||||||
|
|
||||||
// update after the column width changes, also calls OnColumnChange()
|
// update after the column width changes due to interactive resizing
|
||||||
|
void OnColumnResized();
|
||||||
|
|
||||||
|
// update after the column width changes because of e.g. title or bitmap
|
||||||
|
// change, invalidates the column best width and calls OnColumnChange()
|
||||||
void OnColumnWidthChange(unsigned int idx);
|
void OnColumnWidthChange(unsigned int idx);
|
||||||
|
|
||||||
// update after a change to the number of columns
|
// update after a change to the number of columns
|
||||||
|
@@ -204,6 +204,14 @@ int wxDataViewColumn::GetWidth() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxDataViewColumn::WXOnResize(int width)
|
||||||
|
{
|
||||||
|
m_width =
|
||||||
|
m_manuallySetWidth = width;
|
||||||
|
|
||||||
|
m_owner->OnColumnResized();
|
||||||
|
}
|
||||||
|
|
||||||
void wxDataViewColumn::UpdateDisplay()
|
void wxDataViewColumn::UpdateDisplay()
|
||||||
{
|
{
|
||||||
if (m_owner)
|
if (m_owner)
|
||||||
@@ -401,8 +409,7 @@ private:
|
|||||||
wxDataViewCtrl * const owner = GetOwner();
|
wxDataViewCtrl * const owner = GetOwner();
|
||||||
|
|
||||||
const unsigned col = event.GetColumn();
|
const unsigned col = event.GetColumn();
|
||||||
owner->GetColumn(col)->SetWidth(event.GetWidth());
|
owner->GetColumn(col)->WXOnResize(event.GetWidth());
|
||||||
GetOwner()->OnColumnChange(col);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnEndReorder(wxHeaderCtrlEvent& event)
|
void OnEndReorder(wxHeaderCtrlEvent& event)
|
||||||
@@ -5455,6 +5462,11 @@ bool wxDataViewCtrl::InsertColumn( unsigned int pos, wxDataViewColumn *col )
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxDataViewCtrl::OnColumnResized()
|
||||||
|
{
|
||||||
|
m_clientArea->UpdateDisplay();
|
||||||
|
}
|
||||||
|
|
||||||
void wxDataViewCtrl::OnColumnWidthChange(unsigned int idx)
|
void wxDataViewCtrl::OnColumnWidthChange(unsigned int idx)
|
||||||
{
|
{
|
||||||
InvalidateColBestWidth(idx);
|
InvalidateColBestWidth(idx);
|
||||||
|
Reference in New Issue
Block a user