Comment 6 for bug 1300275

Revision history for this message
Thangalin (thangalin-deactivatedaccount) wrote :

X-Post from the mailing list.

----

There are a number of issues with the Text and Font (Ctrl+Shift+T)
panel, including:

* Loading. Loading all system fonts can, in some cases, significantly
reduce application launch time.
* Memory. Loading fonts eats through memory.
* Performance. It can be sluggish to scroll through hundreds of fonts.
* Panel width. Long font names can cause the Text and Font panel (when
docked) to take up half of the drawing area.

The issues include:

* https://bugs.launchpad.net/inkscape/+bug/1400273
* https://bugs.launchpad.net/inkscape/+bug/1612985
(https://launchpadlibrarian.net/278803244/wide-font-panel.png)
* https://bugs.launchpad.net/inkscape/+bug/488247
* https://bugs.launchpad.net/inkscape/+bug/418726
* https://bugs.launchpad.net/inkscape/+bug/430328
* https://bugs.launchpad.net/inkscape/+bug/322113

I'd like to propose some cosmetic changes to the Text and Font pane
that could, perhaps, resolve all of these issues.

See attached (http://i.imgur.com/Jx9Suy2.png).

1. Remove the word "font" (the tab menu gives context).
2. Add horizontal scrollbars to account for long names.
3. Add a Preview list box that shows the fonts in the view port for
the Family list box. This means that fonts don't have to be loaded
until the Family list box view port displays them. Rather than load
the fonts at startup, load them at runtime as needed. It's probably
reasonable to apply a micro delay (say 50ms) so that scrolling through
the Family list box is smooth and fonts are only loaded/rendered when
the user stops scrolling for 50ms. Remove the preview from the Family
list box.
4. Allow the user to provide custom preview text. Preview list box
should present this text. Put a reasonable limit (e.g., 30 characters)
on this. Perhaps this could be a select drop-down with various phrases
that show all the letters (e.g., "Grumpy wizards...", "...lazy dog",
"Cwm fjord...", "0123456789", plus a short history past user-defined
phrases).
5. Allow the user to toggle the Preview list box. This could have a
significant performance increase for people who don't need to preview
all the fonts all the time. It could also save lots of memory.
Additionally, it would free up screen real estate as the panel width
would decrease by the Preview list box width.
6. Allow user to change font size and units. The size is shown as a
drop-down in the mock-up, but the user should also be able to type in
a specific size (e.g., 9.5) as per existing functionality.
7. Maybe allow the user to disable the scroll lock between the Family
and Preview list box areas so that they can vary independently.
Activating the lock automatically updates the Preview list box to
reflect the Family list box view port.
8. Provide beefier handles to resize the pane. Resizing it should
increase the height of the Family/Style/Preview list boxes, pushing
the options (justification, size, space, etc.) down. Clicking on three
tiny dots can be a daunting task for people with shaky hands...
9. Never disable the Set as Default / Apply buttons. If pressing the
buttons won't do anything, then fail silently. Otherwise, always let
the user click them and try to perform the appropriate action.
Currently there's a bug where, in some cases, if the user changes the
font size (but not the font), the Apply button remains disabled.
Removing the code for disabling these buttons should simplify the
source code and possibly force the developer to address the font size
changing bug.