As requested by Alan, here's the rundown on my ideas for better text entry:
Current text entry is really bad. Each object can only enter one thing
in-diagram, any other text must be edited in the properties dialog. The
text entry itself is a hack, rather than using standard Gtk text entry
widgets. It's also hard to tell when you're entering text, and the
keyboard accelerators are mixed up with text entry, disallowing single-key
accelerators.
What I want to do instead is allow objects with text to be selected without
editing text. When the user clicks on a text on a selected object, we
embed a GtkTextView in the diagram on top of the text, with a little grey
border around it -- kinda like what most file managers do.
Additionally, it should be possible to use TAB to move between text fields
on the object, or even on all selected objects. If a text field wants to
use TAB directly (very few would, I imagine), they could have a flag that
allows that, but I'd want to see the need for it first.
This should not only solve the problems with the current text entry, but
also make it a lot easier to edit multi-text objects. I believe that'd
reduce the need to pop up the properties dialog quite a bit.
I've tried implementing this already in a separate checkout, but there's a
few things I haven't sorted out well enough yet: The distance between
lines seems to be bigger on the GtkTextView than in the diagram, I'd have
to subclass GtkTextView to fix that. More importantly, I need a better
system for when to stop editing -- currently it just looks for focus-out,
which is not the right thing.
-Lars
--
Lars Clausen (http://shasta.cs.uiuc.edu/~lrclause)| HĂ„rdgrim of Numenor
"I do not agree with a word that you say, but I |----------------------------
will defend to the death your right to say it." | Where are we going, and
--Evelyn Beatrice Hall paraphrasing Voltaire | what's with the handbasket?