From 4af7d4e0d5dc03a4ef75011c0a6f7f9ffabf495a Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 28 Jul 2018 02:54:44 +0200 Subject: [PATCH] Also implement wxDataViewColumn::UnsetAsSortKey() for wxGTK Allow to reset the sort order in native GTK+ implementation too. See #18176. --- docs/changes.txt | 1 + include/wx/gtk/dataview.h | 1 + src/gtk/dataview.cpp | 11 +++++++++++ 3 files changed, 13 insertions(+) diff --git a/docs/changes.txt b/docs/changes.txt index 80c7c8564e..74ef379423 100644 --- a/docs/changes.txt +++ b/docs/changes.txt @@ -111,6 +111,7 @@ All (GUI): wxGTK: - Implement wxTextCtrl::HitTest() for single line controls. +- Implement wxDataViewColumn::UnsetAsSortKey(). - Fix not showing wxInfoBar with GTK+ 3 < 3.22.29. - Fix the build with glib < 2.32 (e.g. CentOS 6). diff --git a/include/wx/gtk/dataview.h b/include/wx/gtk/dataview.h index 059f1dc367..4f2de40189 100644 --- a/include/wx/gtk/dataview.h +++ b/include/wx/gtk/dataview.h @@ -43,6 +43,7 @@ public: virtual void SetSortable( bool sortable ) wxOVERRIDE; virtual void SetSortOrder( bool ascending ) wxOVERRIDE; + virtual void UnsetAsSortKey() wxOVERRIDE; virtual void SetResizeable( bool resizable ) wxOVERRIDE; virtual void SetHidden( bool hidden ) wxOVERRIDE; diff --git a/src/gtk/dataview.cpp b/src/gtk/dataview.cpp index 71f9774591..c7bd5f16c8 100644 --- a/src/gtk/dataview.cpp +++ b/src/gtk/dataview.cpp @@ -3345,6 +3345,17 @@ void wxDataViewColumn::SetSortOrder( bool ascending ) internal->SetDataViewSortColumn(this); } +void wxDataViewColumn::UnsetAsSortKey() +{ + GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column); + + gtk_tree_view_column_set_sort_indicator( column, FALSE ); + + wxDataViewCtrlInternal* internal = m_owner->GtkGetInternal(); + internal->SetSortColumn(-1); + internal->SetDataViewSortColumn(NULL); +} + bool wxDataViewColumn::IsSortOrderAscending() const { GtkTreeViewColumn *column = GTK_TREE_VIEW_COLUMN(m_column);