summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorbulia byak <buliabyak@gmail.com>2008-08-11 00:14:32 +0000
committerbuliabyak <buliabyak@users.sourceforge.net>2008-08-11 00:14:32 +0000
commit9bb3dac067eec3752ba52849cdad47dbdce824af (patch)
treee51334d75ff3b1de345d85b4d99e57e3c049300f /src
parentclean up code slightly (diff)
downloadinkscape-9bb3dac067eec3752ba52849cdad47dbdce824af.tar.gz
inkscape-9bb3dac067eec3752ba52849cdad47dbdce824af.zip
patch from bug 169004
(bzr r6605)
Diffstat (limited to 'src')
-rw-r--r--src/libnrtype/font-lister.h16
-rw-r--r--src/widgets/toolbox.cpp5
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"));