summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-06-25 17:20:37 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-06-26 10:00:11 +0200
commit5ec647b773670191d51b03b7f668024c046643d8 (patch)
treedb5cc8a675ffb72805fb758aad971afd3150f7ab
parent91fe06b250645babad6df68a26d7ff3361b8ccc3 (diff)
Resolves: tdf#118356 freeze/thaw mass language additions
Change-Id: Ifdc2247594d3ddeea0ca7b3b97eb6e392c54f95b Reviewed-on: https://gerrit.libreoffice.org/56410 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r--svx/source/dialog/langbox.cxx6
-rw-r--r--vcl/unx/gtk3/gtk3gtkinst.cxx18
2 files changed, 22 insertions, 2 deletions
diff --git a/svx/source/dialog/langbox.cxx b/svx/source/dialog/langbox.cxx
index 9ccee3b41728..94b2aeccd0fa 100644
--- a/svx/source/dialog/langbox.cxx
+++ b/svx/source/dialog/langbox.cxx
@@ -654,6 +654,8 @@ void LanguageBox::SetLanguageList( SvxLanguageListFlags nLangList,
{
nCount = SvtLanguageTable::GetLanguageEntryCount();
}
+
+ m_xControl->freeze();
for ( sal_uInt32 i = 0; i < nCount; i++ )
{
LanguageType nLangType;
@@ -691,6 +693,8 @@ void LanguageBox::SetLanguageList( SvxLanguageListFlags nLangList,
if (bHasLangNone)
InsertLanguage( LANGUAGE_NONE );
+
+ m_xControl->thaw();
}
int LanguageBox::ImplTypeToPos(LanguageType eType) const
@@ -758,6 +762,7 @@ LanguageBox::LanguageBox(weld::ComboBoxText* pControl)
m_xControl->make_sorted();
m_xControl->connect_changed(LINK(this, LanguageBox, ChangeHdl));
+ m_xControl->freeze();
sal_uInt32 nCount = SvtLanguageTable::GetLanguageEntryCount();
for (sal_uInt32 i = 0; i < nCount; ++i)
{
@@ -774,6 +779,7 @@ LanguageBox::LanguageBox(weld::ComboBoxText* pControl)
InsertLanguage(nLangType);
}
+ m_xControl->thaw();
}
SvxLanguageBox::SvxLanguageBox( vcl::Window* pParent, WinBits nBits )
diff --git a/vcl/unx/gtk3/gtk3gtkinst.cxx b/vcl/unx/gtk3/gtk3gtkinst.cxx
index e454c58df342..1d2c8d272b83 100644
--- a/vcl/unx/gtk3/gtk3gtkinst.cxx
+++ b/vcl/unx/gtk3/gtk3gtkinst.cxx
@@ -3465,6 +3465,7 @@ public:
{
disable_notify_events();
g_object_ref(m_pListStore);
+ gtk_widget_freeze_child_notify(GTK_WIDGET(m_pTreeView));
gtk_tree_view_set_model(m_pTreeView, nullptr);
enable_notify_events();
}
@@ -3473,6 +3474,7 @@ public:
{
disable_notify_events();
gtk_tree_view_set_model(m_pTreeView, GTK_TREE_MODEL(m_pListStore));
+ gtk_widget_thaw_child_notify(GTK_WIDGET(m_pTreeView));
g_object_unref(m_pListStore);
enable_notify_events();
}
@@ -4480,12 +4482,24 @@ public:
virtual void freeze() override
{
- //do nothing for now
+ gtk_widget_freeze_child_notify(GTK_WIDGET(m_pComboBoxText));
+ if (m_xSorter)
+ {
+ GtkTreeModel* pModel = gtk_combo_box_get_model(GTK_COMBO_BOX(m_pComboBoxText));
+ GtkTreeSortable* pSortable = GTK_TREE_SORTABLE(pModel);
+ gtk_tree_sortable_set_sort_column_id(pSortable, GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, GTK_SORT_ASCENDING);
+ }
}
virtual void thaw() override
{
- //do nothing for now
+ if (m_xSorter)
+ {
+ GtkTreeModel* pModel = gtk_combo_box_get_model(GTK_COMBO_BOX(m_pComboBoxText));
+ GtkTreeSortable* pSortable = GTK_TREE_SORTABLE(pModel);
+ gtk_tree_sortable_set_sort_column_id(pSortable, 0, GTK_SORT_ASCENDING);
+ }
+ gtk_widget_thaw_child_notify(GTK_WIDGET(m_pComboBoxText));
}
virtual ~GtkInstanceComboBoxText() override