diff options
| author | bulia byak <buliabyak@gmail.com> | 2008-08-11 00:14:32 +0000 |
|---|---|---|
| committer | buliabyak <buliabyak@users.sourceforge.net> | 2008-08-11 00:14:32 +0000 |
| commit | 9bb3dac067eec3752ba52849cdad47dbdce824af (patch) | |
| tree | e51334d75ff3b1de345d85b4d99e57e3c049300f | |
| parent | clean up code slightly (diff) | |
| download | inkscape-9bb3dac067eec3752ba52849cdad47dbdce824af.tar.gz inkscape-9bb3dac067eec3752ba52849cdad47dbdce824af.zip | |
patch from bug 169004
(bzr r6605)
| -rw-r--r-- | src/libnrtype/font-lister.h | 16 | ||||
| -rw-r--r-- | src/widgets/toolbox.cpp | 5 |
2 files changed, 19 insertions, 2 deletions
diff --git a/src/libnrtype/font-lister.h b/src/libnrtype/font-lister.h index b2d2a3ecf..13611caf7 100644 --- a/src/libnrtype/font-lister.h +++ b/src/libnrtype/font-lister.h @@ -59,8 +59,22 @@ namespace Inkscape } }; + /* Case-insensitive < compare for standard strings */ + class StringLessThan + { + public: + bool operator () (std::string str1, std::string str2) const + { + std::string s1=str1; // Can't transform the originals! + std::string s2=str2; + std::transform(s1.begin(), s1.end(), s1.begin(), (int(*)(int)) toupper); + std::transform(s2.begin(), s2.end(), s2.begin(), (int(*)(int)) toupper); + return s1<s2; + } + }; + FontListClass FontList; - typedef std::map<Glib::ustring, Gtk::TreePath> IterMapType; + typedef std::map<Glib::ustring, Gtk::TreePath, StringLessThan> IterMapType; /** Returns the ListStore with the font names * diff --git a/src/widgets/toolbox.cpp b/src/widgets/toolbox.cpp index a27e3906c..a7591608f 100644 --- a/src/widgets/toolbox.cpp +++ b/src/widgets/toolbox.cpp @@ -5175,12 +5175,15 @@ sp_text_toolbox_family_changed (GtkTreeSelection *selection, gtk_widget_grab_focus (GTK_WIDGET(desktop->canvas)); } +/* This is where execution comes when the contents of the font family box have been completed + by the press of the return key */ void sp_text_toolbox_family_entry_activate (GtkEntry *entry, GObject *tbl) { - const char *family = gtk_entry_get_text (entry); + const char *family = gtk_entry_get_text (entry); // Fetch the requested font family +// Try to match that to a known font. If not, then leave current font alone and remain focused on text box try { Gtk::TreePath path = Inkscape::FontLister::get_instance()->get_row_for_font (family); GtkTreeSelection *selection = GTK_TREE_SELECTION (g_object_get_data (G_OBJECT(tbl), "family-tree-selection")); |
