Inkscape Release Notes
----------------------
Please see the Inkscape website for the latest news about the project,
or the ChangeLog for further details about releases. This file contains 
the release notes for the current release.



  Inkscape 0.39


    In brief

Inkscape 0.39 is a Development Release, which means we focused on
architecture changes and adding new features. The official goal for the
release was switching to the Pango library for text and font handling.
But in addition to that, we've got loads of new and exciting stuff -
here are only a few highlights:

    * Pango: smoother text display, auto kerning, better i18n (automatic
      font substitution, right-to-left text, bi-directional text), less
      platform dependence
    * New SVG features: markers (aka arrowheads), clones (svg:use),
      pattern tiles, RDF metadata; many SVG compliance bugfixes
    * New dialogs: Preferences, Find, Metadata
    * Pure convenience: usable dropper, scale switches, Commands bar,
      more tool controls (including rounded stars), more import formats,
      more paper sizes, Revert command, edit inside group, better
      selection cues, spell checking, window layout configurable,
      streamlined Fill & Stroke, snapping improvements, better rounded
      corners in rects, path reversing, persistent rotation crosshair,
      per-object export hints, and much more
    * Internals: speedups, more C++ification, garbage collection, SigC++
      signals, wider use of new data structures, extensive cleanup
    * Plus: new documentation, new translations, lots of assorted bugfixes 


    New functionality

    * Thanks to the Pango library, Inkscape 0.39 supports:
          o Auto kerning: kerning pairs stored in the font now work;
          o Automatic font substitution: you can type in any language
            using any font, and any glyphs will be displayed
            automatically, fetched from a substitute font if missing on
            the current font;
          o Correct editing and display of right-to-left (Hebrew,
            Arabic) and mixed bidirectional text;
          o Smoother text display: no ugly autohinting gaps, no jumps
            when adjusting letterspacing or converting to paths. 
    * The new Inkscape Preferences dialog (Shift+Ctrl+P) gives access to
      lots of previously "hidden" options to configure various aspects
      of the program's behavior.
    * You can now use the drawing tools within existing groups by
      selecting "Edit group" from the group's context (right click)
      menu. "Edit root" takes you back out to the top level.
    * Path markers are fully supported. This is an SVG feature that
      allows to you to attach arbitrary shapes (arrowheads, bullets,
      faces, whatever) to the start, end, or middle nodes of a path.
      Inkscape comes with a library of several dozen predefined markers,
      and you can create your own.
    * The dashed strokes feature is fixed to support arbitrary dash
      lengths. There are many new dash patterns added to the Stroke
      Style tab of the Fill & Stroke dialog.
    * The stroke-miterlimit CSS property, setting the maximum length of
      the miter, is now supported; it can also be adjusted on the Stroke
      Style tab.
    * The "Scale stroke width" preference is implemented (see the
      Transforms tab of the Inkscape Preferences dialog). When it's off,
      scaling objects preserves their stroke widths unchanged; when it's
      on (the default), stroke widths are scaled by the same proportion.
    * The new Clone command (Alt+D) creates a copy of an object which
      can be moved, scaled, rotated, or skewed independently, but which
      updates its shape, fill, stroke, and other properties from the
      original object when that is changed. The Unlink Clone command
      (Shift+Alt+D) cuts the link between the clone and its original,
      while Select Original (Shift+D) lets you find out which object
      this clone is linked to. Via Inkscape Preferences, you can control
      the behavior of clones when their original is moved or deleted.
    * The new Tile command (Alt+I) creates a rectangle with tiled
      pattern fill out of the selection. After that you can resize or
      reshape the rect, or you can Paste Style (including the pattern)
      from it to any other object. The Fill and Stroke dialog also lets
      you select one of the document's patterns for any object. This is
      an easy way to change the shape of the imported bitmap: Tile it
      and reshape it using the node tool (also you can set a user
      preference to always import bitmaps as pattern fills). To extract
      the tile from a pattern fill, use Untile (Shift+Alt+I).
    * The new Find dialog (Ctrl+F) selects objects by their text
      content, ID, style, attribute name, or object type (shapes, texts,
      groups, etc.). The search terms can be combined. You can search
      either in the entire document or in the current selection (search
      descends into groups). An exact match is attempted first; if it
      fails, partial matches are selected if found (e.g. searching for
      "ff0000" in Style will select all objects that have this color
      anywhere in their style attribute).
    * The Import command supports all of the bitmap formats that are
      covered with GdkPixbuf (PNG, JPEG, TIFF, TGA, BMP and more), as
      well as Skencil/Sketch and Dia (you'll need these programs to be
      installed for import to work). AI, PS and EPS import has been
      improved in this version. Still more formats, both bitmap and
      vector, can be added using the scripting system.
    * The new Revert command in the File menu reloads a document from
      its last saved copy.
    * In the Document Preferences dialog, you can now select one of the
      many standard paper sizes in Portrait or Landscape orientations.
    * The text editing box in the Text and Font dialog performs
      as-you-type spell checking (requires GtkSpell,
      http://gtkspell.sourceforge.net/).
    * Gradients, patterns, and markers are culled from the document
      automatically when no longer needed (but hand-created objects will
      be spared). This results in leaner, cleaner SVG.
    * You can reverse the direction of selected path(s) either via Path
      > Reverse or by pressing 'r' in node tool (useful for markers and
      combining paths).
    * A wild variety of central-symmetric curvilinear shapes, including
      softly rounded stars and polygons, can be created using the new
      Roundedness control on the Tool Controls bar for the star tool.
    * Viewing and editing of an SVG image's metadata (Title, Author,
      License, etc) is possible through the Document properties dialog.
      This is done via embedded Dublin Core RDF within the SVG. 


    Interface, usability, bugfixes

    * The per-object selection cues can now be displayed in any tool, so
      that you can see what is selected at all times. You can switch
      these cues on or off for each tool separately in the Preferences
      dialog (the default is on for all tools). Also, the cues can now
      be displayed either as dashed bounding boxes or as inverse diamond
      marks in the object's top left corner.
    * The dropper tool now works always (previously it only worked in
      conjunction with the Fill and Stroke dialog). Click to set the
      fill color of selection, Shift+click to set the stroke color.
      Also, dropper can pick either the visible color (without
      transparency) or the actual object color (including transparency),
      depending on a preference setting. It also displays the color
      under cursor in the status bar.
    * A newly opened document is placed in the same window, if the
      window contains an unchanged empty document.
    * The new Commands bar, between the menu and the Tool Controls bar,
      has buttons for most frequently used non-tool-specific commands
      such as Open, Undo, Group, opening dialogs, etc. (It can be hidden
      if you don't want it, see the next item.)
    * The document window layout is completely configurable. Via the
      View menu commands, you can show or hide the menu, Commands bar,
      Tool Controls bar, toolbox, rulers, scrollbars, and the statusbar.
      These settings are saved across sessions, separately for normal
      and fullscreen modes.
    * In the selector controls, the W and H fields can now be
      interlocked so that the selection preserves its height/width ratio
      when resized. Also, percent (%) is added to the unit menu, so you
      can easily resize or move your selection by a relative value.
    * The calligraphic and ellipse/arc tools have all their controls in
      the tool controls bar.
    * The rectangle controls now allow you to set the horizontal and
      vertical rounded corner radii in absolute units (pt, mm, etc)
      instead of the radius/halfwidth and radius/halfheight ratios as
      before. By default, these radii are preserved when you transform
      the rectangle (controlled by a user preference). In rectangle
      tool, the selected rectangle has a new handle in the bottom right
      corner which allows you to resize the selected rectangle without
      switching to selector. The handles for rounding corners are moved
      to the top right corner.
    * For a more task oriented menu structure, the Dialogs menu commands
      are distributed to other menus, and the Dialogs menu is removed.
    * All menu items display their explanations in the statusbar when
      selected.
    * The Fill and Stroke dialog is made simpler and more usable by
      removing some obsolete options, shortening labels, using smaller
      and more descriptive icons, and adding mnemonic hotkeys and tooltips.
          o The dialog now remembers and reactivates the color selector
            tab you were using last.
          o The channel entry fields are switched from the 0..1 range to
            0..255 range for increased precision (but you still can type
            in a value between 0 and 1 exclusive, and it will be
            converted to the 0..255 range when you press Enter).
          o Stroke Width can also use the % unit for relative stroke
            width changes. When several objects are selected, using the
            percent unit changes the stroke width of each one relative
            to its previous value (unlike absolute units which assign an
            average width to all objects). 
    * Various improvements to snapping behaviour:
          o When grid snapping is on:
                + The bezier tool's initial point will now snap to the
                  grid as expected.
                + Pasting from clipboard places selection at the same
                  offset relative to the grid as that of the copied
                  object(s).
                + You can drag objects and nodes with Shift pressed to
                  temporarily avoid snapping. 
          o You can now snap to either an object's nodes or its bounding
            box (or both).
          o The origin to use for scaling can be set to either object
            nodes or bounding box.
          o Various other fixes to snapping behaviour. 
    * Improvements in file open/save dialog:
          o Unique filename is proposed for a file's first save.
          o The "Autodetect" format on save disables the "Append
            filename extension" checkbox.
          o When switching formats on save, the filenames will change
            automatically.
          o Save/open paths are saved in preferences. Will default to
            user's home directory. 
    * Export dialog improvements:
          o Each object exported separately (via Selection export)
            remembers the output filename and resolution, and these
            hints are filled in when you export it next time. In the
            absence of the saved hints, default output filename is
            constructed from the object's id attribute.
          o A new option, Custom, is added to the dialog allowing you to
            specify arbitrary export area. 
    * The initial value of the sticky zoom in a new window can now be
      set in Preferences. The sticky zoom button is moved above the
      right scrollbar.
    * The zoom field (in the lower left corner of the window) can now be
      activated by Alt+Z.
    * Input/output extensions can now save their preferences. Thus, the
      printer command you used last time in the Print dialog is remembered.
    * The rotation/skew axis crosshair in selector remains where you put
      it for as long as you have the object(s) selected; to reset it to
      the center, deselect and reselect. Also the crosshair is only
      displayed in rotate mode, not in scale mode - this makes it easier
      to drag small objects.
    * In node tool, the first Escape or empty-space click deselects any
      selected nodes, the second one deselects the selected object
      removing the node display.
    * Three handles have been added to allow on-canvas translation,
      rotation and scaling of pattern fills.
    * Object handles no longer accidentally "snag" on the mouse.
    * In Document Preferences, grid units are correctly recalculated
      with the unit base changes.
    * The infamous "freeze when dragging outside of window" bug on
      Windows is gone. 


    Clipart, documentation, translations

    * The small clipart collection that was shipped with Inkscape 0.38
      is removed; instead you are encouraged to use (and contribute to)
      the much larger collection of vector clipart at
      http://www.openclipart.org.
    * Localizations of the interface now work on the Windows platform.
    * There's a small tutorial at share/tutorials/making_markers.svg
      which will guide you through creating your own markers.
    * Updated Brazilian Portuguese, Catalan, German, Serbian, Serbian in
      Latin script, Slovenian and Spanish interface translations.
    * Added French translation of "Basic Tutorial" and "Advanced Tutorial".
    * Added Slovenian translation of "Keys and Mouse", "Basic Tutorial",
      "Advanced Tutorial", "Elements and Principles of Design" and "Tips
      and Tricks". 


    Internal progress

    * 133 KB of old, messy, platform-tied C code in libnrtype/ were
      replaced by 80 KB of much cleaner C++ code using Pango.
    * The preserve/optimize transformation switch, formerly in selector
      tool options, is made global. Now all object transformations honor
      this setting, regardless of command or tool that caused them. This
      setting controls whether object transforms are only stored in
      |transform=| attributes in SVG or they can affect other attributes
      too.
    * Internal support for layers is essentially complete (and is
      utilized by the "Edit group" feature)
    * Many of the signals are changed from GObject signals to SigC++
      signals.
    * The 7 or more different flavours of Rect are being condensed into
      NR::Rect and NR::IRect, similarly for Points.
    * Delibartation: All references to libart have been removed in
      preparation for switching entirely to the livarot rendering system.
    * The medicinal maggots have excised copious quantities of senescent
      code.
    * All the display code has migrated into display/, away from helper/.
    * Orphans (those objects having no URI references pointing to them
      or their descendants) will be automatically culled if they have
      inkscape:collect="always" set.
    * SPObjects now track the total hrefcount of their descendants, for
      orphan collection purposes. 


    Known issues

    * Stroke, patterns, gradients, and rect corners are always shown as
      scaled when you transform them by mouse drag in selector with
      "Show objects" mode, regardless of the status of the corresponding
      switches. The proper display is restored, however, as soon as you
      release mouse.
    * Support for inkscape:groupmode has been temporarily removed, as
      part of the layers work; it will be re-introduced in 0.40.
    * Orphan objects that were created or edited by the user are
      currently not garbage-collected (only automatically added helper
      objects are). In a future version we'll add an explicit Cleanup
      command to remove any unused objects. Also, garbage collection is
      not immediate (usually it happens upon the next change of the
      document) because NRArenaShape holds on to an SPStyle for too long
      (it should not use SPStyle directly at all).
    * The preferences file of version 0.39 is not compatible with 0.38
      due to a bug in 0.38. If you ever want to downgrade to 0.38 or an
      earlier version (why?!) you'll need to delete your
      ~/.inkscape/preferences.xml to avoid crashes.
    * Due to a bug in earlier versions, linked offsets with added
      transform could be rendered incorrectly (displaced) in third-party
      SVG renderers. To fix that using 0.39, do some no-op change to the
      linked offset (e.g. nudge it forth and back) and save.
    * The direction of end markers was incorrect in 0.38. If you used
      that version to create drawings with end markers, you will have to
      flip them now.
    * Windows builds have limited import/export capabilities compared to
      Linux builds. 


    Previous releases

    * ReleaseNotes038 <wiki.pl?ReleaseNotes038>
      (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes038)
    * ReleaseNotes037 <wiki.pl?ReleaseNotes037>
      (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes037)
    * ReleaseNotes036 <wiki.pl?ReleaseNotes036>
      (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes036)
    * ReleaseNotes035 <wiki.pl?ReleaseNotes035>
      (http://inkscape.org/cgi-bin/wiki.pl?ReleaseNotes035) 

