Release notes/0.44

From Inkscape Wiki
Revision as of 11:27, 13 February 2006 by Rwst (talk | contribs) (→‎Important bugfixes: libxml requirements)
Jump to navigation Jump to search

Inkscape 0.44

In brief

Bigger and better.

Outline mode

An Outline ("wireframe") display mode is implemented. Use the View > Display Mode > Outline to activate it. In this mode:

  • all paths and shapes are rendered as inverse (black on light background and vice versa) outlines of constant width (1 screen pixel regardless of zoom), without fill;
  • text is painted by inverse fill, without stroke;
  • bitmaps are shown as is;
  • any opacity and gradients are ignored.

The outline mode is usually not drastically faster than regular mode (usually 10% to 50% faster), and in some special cases it may even be slower. However, the value of the outline mode is not only in its speed; it is a good way to get an idea of the structure and objects of your document, and it is convenient for precision node editing and for finding "stray objects".

Selected style indicator

A new control in the left end of the statusbar lets you quickly view and change the fill and stroke of the selected objects. When you have a text selection in Text tool or a gradient handle selected in the Gradient tool, this indicator displays and changes the style of the text fragment or gradient stop, instead of the entire object (it's the same behavior as the Fill&Stroke dialog.)

  • The two indicators, labelled F: (top) and S: (bottom), display fill and stroke of the selected object(s) correspondingly. (For gradient handles, they always display the same style.)
  • Each fill/stroke indicator can display either a color+opacity swatch (the opacity shown here is the fill opacity or stroke opacity, not the master opacity) or a text label specifying N/A (nothing selected), None (no fill/stroke), Unset (unset fill/stroke), L Gradient, R Gradient, Pattern (corresponding fill/stroke types), or Different (selected objects have different fill/stroke types).
  • Additionally, each indicator may be accompanied by one of two flags, m ("multiple", meaning there are two or more objects all with the same fill/stroke) or a ("averaged", meaning there are two or more objects with different flat colors in fill/stroke, and the indicator shows the average of these colors).
  • Left-click on an indicator opens or activates the Fill&Stroke dialog with the corresponding tab (Fill or Stroke) active.
  • Right-click on an indicator opens a popup menu with the following items:
    • Edit fill/stroke...: Opens or activates the Fill&Stroke dialog with the corresponding tab selected. (Same as left-click.)
    • Last set color: Applies to the selected objects the fill/stroke color that was last applied to anythig.
    • Last selected color: Applies to the selected objects the fill/stroke color that was last displayed in this indicator. (Allows you to easily copy fill/stroke color between objects: select source, select destination, apply "last selected color".)
    • Invert: Sets the fill or stroke to the inverse of the current color (does not affect opacity).
    • White, Black: Sets the fill or stroke to the corresponding color (fully opaque).
    • Copy color, Paste color: Copies or pastes the fill or stroke color (when it's color) to/from the system clipboard, as text in the #rrggbb hex format.
    • Swap fill and stroke: Exchanges fill and stroke (both their types and colors, if any).
    • Make fill/stroke opaque: Removes fill or stroke transparency (not master transparency!).
    • Unset fill/stroke: Unsets fill or stroke from selected objects.
    • Remove fill/stroke: Removes fill or stroke from the selected objects.
  • Middle-click on a fill/stroke indicator removes fill/stroke from selected objects; if it is already removed (i.e. if the indicator displays "None"), it does the same as the "Last set color" command from the popup menu.
  • The Stroke indicator also displays the stroke width of selection (averaged if there are multiple objects selected with different stroke widths), located to the right of the stroke color/transparency swatch. Left-clicking on it opens the Fill&Stroke dialog with the Stroke Style tab selected. Right-clicking on it opens a popup menu which allows you to choose the units for displaying the stroke width, as well as choose one of the presets to assign to selection.
  • To the right of the fill/stroke indicators, the Opacity numeric field (labelled "O:") shows and allows you to change the master opacity of the selected object (or the averaged opacity of several selected objects). Right-clicking the numeric field opens a popup menu with preset opacity levels. Middle-clicking on the "O:" label cycles the opacity through the values of 0 (transparent), 0.5, and 1 (opaque).

The zoom field and the cursor coordinates indicator have been rearranged for compactness and moved to the right end of the statusbar. There's also a window resize handle added at the very end of the statusbar.

Color palette


Transform dialog

Fixes and improvements in the Transform dialog (Ctrl+Shift+M):

  • The Apply to each object separately checkbox is added, allowing you to scale/rotate/skew each selected object by the same amount, around that object's center. When off (by default), the selection is transformed as a whole. The status of this checkbox is remembered across sessions. (It has no effect on Move and Matrix tabs).
  • The Clear button resets the values on the current tab to defaults.
  • The Scale tab now allows you to specify horizontal or vertical size increments in percentage or absolute units. Also, there's a Scale proportionally checkbox which ensures that scaling preserves the width/height ratio. (If you are scaling several objects proportionally with "Apply to each object separately", you can only use the % unit to specify the scaling; otherwise each object's scale increments will have the width/height ratio of the entire selection, not of that specific object.)
  • The Skew tab can now specify the skew as an absolute displacement (e.g. for horizontal skewing of a rectangle, that means the shift of the top rectangle side relative to the bottom), as percentage displacement (e.g. a 1% horizontal skew of a rectangle means shifting the top side by 1% of the rectangle height), or as an angle (e.g. horizontal skew by 15 degrees results in the sides of a rectangle being rotated to that angle, while the top and bottom remain horizontal).
  • The Matrix tab (previously called "Transform") can either edit the current transform= matrix of an object, or post-multiply the transform= with the matrix you specify, depending on the Edit current matrix checkbox. (As it is now redundant, the transformation matrix in the Object Properties dialog is removed.)
  • The dialog now correctly watches selection changes in the active document window and updates its values accordingly.
  • The layout of the dialog is simplified, tooltips and mnemonics added for better usability.
  • Many bugs are fixed, especially in value conversions between units.

Remembering the rotation center

  • The position of the center (axis) of rotation and skewing used by Selector is now remembered for all objects and is restored when you select those objects again (even after save and reload). When you move or scale an object, its rotation center is moved or scaled too, so its position relative to the object always remains the same.
  • When you have several objects selected, they use the rotation focus of the first selected object. If the first object does not have center set (i.e. if it's in a default central position), then several objects will rotate around the center of their common bounding box.
  • Shift+click on the rotation center resets it back to the center of the object's box.
  • Consequently, dragging the transformation center is now an undoable action; you can press Ctrl+Z to undo the drag.


- make use of this in keyboard transforms and Transform dialog;

- make it work smartly for groups: if a group has center not set, return the center of the first object inside group with the center set

- a separate tab in the Transform dialog, with 9 buttons in the square grid (for setting it to object's corners, sides, and center) as well as x/y fields for setting center to any position

- make center snap to grid/guides/objects and to other centers

- make objects snap with their center to grid/guides/objects]

Align & Distribute dialog: remove overlaps

  • There is a new button to move the selected objects enough that they don't overlap each other.

This should be a significant addition to Inkscape's usability for diagramming.

[Consider expanding this, comparing with existing Unclump and Distribute edge-to-edge buttons.]

Document Properties / Metadata dialogs

  • The Document Preferences dialog is now named Document Properties, and it was split in two: metadata were extracted into the Document Metadata dialog; metadata widgets are now also spread over two pages.
  • New controls: the new object snapping features required their own property widgets, and you can set the snapping sensitivity with a slider, or let it snap regardless of distance.
  • Rearrangements within Document Properties: everything snapping related was collected on one page; Grid and Guide widgets are on their own, the same page. Due to HIG compliance, all widgets were categorized; especially the widgets on the Page page were completely rearranged in the General/Format/Border categories.
  • Bug fixes: grayed out license URI had too low contrast, so it's no longer grayed out; the proprietary license didn't clean the license uri; spinbuttons had no tooltips, and minor grid quirks were removed; data was not updated when a new file replaced another in the same window.
  • HIG compliance: much work went into, and now only a few details are missing from full Gnome-HIG compliance.

Keyboard profiles


Path effects



  • [object snap - carl]
  • [highlight - mtou]
  • [only to visible gridlines - mtou]
  • Guidelines are made easier to pick: now you don't need to position mouse exactly over a guideline to activate it, instead there's a small position tolerance (1 screen pixel on each side of the guideline).


  • The buffer around avoided shapes (used for autorouting connectors) can now be adjusted via the "Spacing" control on the Connector toolbar.

Important bugfixes

  • inkscape couldn't be compiled with libxml versions <= 2.6.9, and we now bumped the requirements from 2.6.0 up to libxml >= 2.6.11, which is the earliest you can get officially, anyway.
  • Scaling of objects with stroke in Selector used to cause undesired shifts of the scaled object, as well as scaling it in the dimension which was intended to remain untouched (e.g. slight change in width when you scale only height). All these problems are now fixed, both for interactive scaling by mouse and for numeric scaling via the Controls bar, and for both values of the "Scale stroke with objects" option. Among other things, this means that stroked objects no longer lose snapping on scale, and that the "Default scale origin" option in the Selector tool preferences finally works as designed. Caveat: There may still be problems if you scale a selection that contains objects with different stroke widths.
  • Bounding box for text objects did not include stroke width.
  • Stroke miterlimit on text objects was misinterpreted in absolute units instead of multiplies of stroke width (resulting in miter joins rendered as bevel).
  • [win32 font backend - cyreve]
  • Setting dash pattern was broken for transformed objects, and copy/paste of style with dash pattern did not apply correctly to objects with transforms.
  • An error caused a complete extra screen redraw after each zoom operation. That is, after you press "+" in a complex drawing, Inkscape redraws, but for some time after that it remains still unresponsive because it does that second redraw (invisibly for you, i.e. nothing changes on the screen). This is fixed.
  • Gradient rendering was off by one pixel, which often resulted in visibly wrong gradient rendering for small objects or in zoom-out.
  • The SVG path parser could not handle fractional numbers with the initial dot.
  • Several pattern rendering bugs are fixed, discovered by working with SVG files exported from Adobe Illustrator.
  • Inkscape on Mac OS X will now notice fonts in your ~/Library/Fonts directory, in addition to the other standard places.
  • Scaling of stroke didn't work for objects that didn't specify stroke-width and thus had the default 1px stroke.

Misc improvements

  • Now you can use Shift+middle button drag in any tool to zoom into an area. This works the same as simple drag in Zoom tool, but is faster because it does not require switching away from your current tool. Together with middle button drag (panning), middle button click (zoom in) and Shift+middle button click (zoom out), this completes the set of canvas navigation shortcuts available in any tool or context.
  • Document templates (listed in File > New) are now first searched in the templates subdirectory of the user's profile directory (on Linux it's ~/.inkscape/templates), then in the system-wide Inkscape templates directory. This allows you to add your own templates on top of the list of standard templates, as well as override the default template with your own one (the default.svg in the profile directory has priority over the system-wide one).
  • In Gradient tool, Shift+R reverses the gradient definition (i.e. mirrors the stop positions) without moving the gradient handles. For example, an elliptic gradient with blue center and red periphery becomes red in the center and blue in the periphery. This works on the gradient(s) of the currently selected gradient handle or, if no handle is selected, on all selected objects' gradients. (Compare with the Node tool where Shift+R reverses the direction of the selected path.) This is especially convenient for elliptic gradients which, unlike linear, you cannot simply rotate by 180 degrees for the same result.
  • When toggling one of the "transform with object" buttons (for stroke width, rounded rectangle corners, gradients, or patterns), a message is displayed in the statusbar explaining what has changed in the program's behavior.
  • Zoom commands in the View menu are moved to a submenu; the Zoom In and Zoom Out commands are added to that submenu.
  • The contents of the statusbar message are now duplicated as a tooltip that is shown when you hover the mouse over the statusbar. [TODO: need to strip from the tooltips.] Also, the status bar text is now no longer just cut off if there is no room but, at the end position, ellipses (...) are inserted to show there's more (only with Gtk 2.6 and newer).
  • Whole thousands above 2000 in the rulers are now displayed as 2k, 3k, 4k etc.
  • By popular demand, in Pen tool, if a new path is being drawn but not yet finished, Ctrl+Z cancels that unfinished path (i.e. does the same as Esc), instead of undoing the previous action.
  • In Pen tool, Del works the same as Backspace to delete the last created point on the unfinished path.
  • In Node tool, the ! key inverts node selection in the current subpath(s) (i.e. subpaths with at least one selected node); Alt+! inverts in the entire path. (This is similar to how these keys work in Selector, with current subpath(s) instead of the current layer.)
  • The keyboard shortcut for "Make selected segments curves" in Node tool is changed from Shift+K to Shift+U for better mnemonics.
  • In Calligraphic tool, Esc deselects as in most other tools.
  • In Selector, Ctrl+Enter enters the selected group (making it a temporary layer). Ctrl+Backspace leaves the current layer and goes one layer up in the hierarchy (but not to root).
  • In the Document Preferences dialog, the new object style for each tool is now shown as a style swatch (displaying fill/stroke colors and opacity, stroke width, and master opacity), similar in design to the selected style indicator in the statusbar.
  • Simplify threshold in Inkscape Preferences can now be set with more precision.
  • [pen tool keys - bb]
  • In the Grid Arrange dialog, row/column spacing can now be negative.
  • The installation default is now scaling rounded rectangle corners with the rectangles.
  • The --query-* command line parameters now return the true SVG bounding box of the object instead of the Inkscape coordinate system bbox (with inverted Y axis). The new behavior makes more sense for scripting use of Inkscape.
  • Individual <tspan>s within text objects (including line tspans) can now be selected via the XML editor to view their bounding boxes (though per SVG, you cannot transform them). Also, you can use the --query-* command line parameters to find out the bounding boxes of tspans from a script. (Individual strings within or between tspans are still not selectable, and they cannot have an ID for querying anyway.)
  • Objects with clippath show the correct clipped bounding box, instead of the original unclipped bbox as before. (However, this does not apply to objects without clippath of their own which are clipped by being inside a clipped group.)
  • The contents of the Effects menu are categorized into submenus, and several effects are renamed to more intuitive names.
  • [save zip with images - acspike?]
  • [about dialog redesign - mental]
  • [icons prerendering - joncruz, mental]
  • [extensions on windows - ishmal]
  • [new icons?]
  • [python extensions to work out of the box on windows? - ishmal]
  • [new cursors - scislac]
  • [dxf output extension - acspike]
  • In the Transform dialog / Rotate tab, the icon was flipped horizontally to be in line with the direction of positive rotation; the change was applied to the default and crispy icon sets.

Rendering speed

Thanks to optimizations in the renderer, Inkscape's screen redraw is faster by at least 10%, and in some cases (such as complex stroked/dashed paths at high zooms) up to three times faster.


  • INX files (containing the UI of the external effects) now allow the user visible strings to be translated. This means that effect dialogs, file type selections, and extension names can all be translated by translators.


  • The Document Properties Dialog code was completely gtkmmified, which lead to dramatic reduction of code size due to usage of widget objects. The used widget objects should be reusable by other dialogs, too, and the code is much more readable.
  • Work on optimizing includes in all cpp files started, using the purgeincludes tool specifically written for that purpose, and ended with 40% of include lines removed!

Beware: defect themes on Linux

  • Inkscape and other Gtk programs can crash on any Linux, when the gtk2-engines-smooth / libsmooth package is installed. We have filed a bug against libsmooth which is now in gtk-engine and part of gnome. Removing the package resolves the problem, however, but it would be nice if you as affected user would inform the gtk-engines maintainers of the problem. See especially (thanks to Thomas Wood)
  • A similar crash happens if the KDE Baghira theme and the package gtk_qt_engine are installed. If you experience Inkscape crashes on KDE, please try to install a different theme from Baghira, or uninstall the gtk_qt_engine package from your system. Both problems also affect older versions of Inkscape.

Previous releases