diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/glyphs.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/ui/dialog/glyphs.cpp b/src/ui/dialog/glyphs.cpp index 8677bcda2..133cf01ea 100644 --- a/src/ui/dialog/glyphs.cpp +++ b/src/ui/dialog/glyphs.cpp @@ -377,6 +377,10 @@ void GlyphsPanel::rebuild() } #endif // GLIB_CHECK_VERSION(2,14,0) + // Disconnect the model while we update it. Simple work-around for 5x+ performance boost. + Glib::RefPtr<Gtk::ListStore> tmp = Gtk::ListStore::create(*getColumns()); + iconView->set_model(tmp); + std::vector<gunichar> present; for (gunichar ch = 1; ch < 65535; ch++) { int glyphId = font->MapUnicodeChar(ch); @@ -401,6 +405,9 @@ void GlyphsPanel::rebuild() (*row)[columns->code] = *it; (*row)[columns->name] = tmp; } + + // Reconnect the model once it has been updated: + iconView->set_model(store); } } |
