Inkscape 0.46

(not released yet)

Speed and interactivity

In this version, Inkscape starts using the cairo library for rendering. It is now used for outline mode display which, thanks to using cairo and other optimizations, redraws faster by about 25%. More impressive are memory savings: thanks to cairo, in outline mode Inkscape now takes only about 50% of the memory used by 0.45 for the same file.

Smart redraw directionality: With complex images and/or on slow computers, you may have noticed that Inkscape redraws the screen image in horizontal strips, and these strips are painted sequentially top to bottom. Now this direction is automatically changed based on where your mouse cursor is. In particular, if mouse is closer to the bottom of the area to redraw, strips will be painted in the bottom-to-top order. This significantly improves the responsiveness and interactivity in some situations. For example, when you are node-editing the bottom part of a complex path, the entire path needs to be redrawn on each change, but now this redraw starts from the bottom and therefore the you see the effect of your changes at once - i.e. while screen redraw may still lag behind your mouse movement, this lag is less noticeable.

Faster blur for exporting and high quality on-screen rendering: Inkscape now uses an IIR (Infinite Impulse Response) filter for blurring with large radius. This greatly improves the speed of blur redraw at high zooms or in high-resolution export (or simply with very large blur radius). On the other hand, the results are an approximation to a true Gaussian blur, so a drawing may look slightly different from the mathematically precise blur (usually the differences are far from visible, though). This code is mainly based on: Recursive Gaussian Derivative Filters by L.J. van Vliet, I.T. Young and P.W. Verbeek (see the source code for more detailed references).

Moving the cursor around in a file with large and complex paths has become much snappier and more responsive. Previously, in extreme cases Inkscape could freeze for seconds while catching up with the mouse cursor; such delays are now eliminated.

Several improvements make canvas panning and scrolling smoother and more interactive in complex slow-rendering documents:

When panning by the middle mouse button, Inkscape no longer attempts to redraw the canvas while your mouse button is pressed. Any redrawing only happens after you release the mouse. As a result, the newly revealed parts of the canvas are somewhat more "dirty" but the panning is smoother than before, with few if any "hiccups".

Previously, if you start panning with middle button while Inkscape is still redrawing screen in a complex drawing, panning sometimes completely failed or moved canvas just a little step. Now it is guaranteed to pan the canvas all the way from mouse-press point to mouse-release point in any case, even if sometimes it fails to show the intermediate positions.

When pressing and holding Ctrl+arrows to scroll canvas, Inkscape normally accelerates scrolling so that each next scrolling step is bigger than the previous. Previously, in complex drawings this acceleration sometimes got interrupted, which made scrolling annoyingly bumpy and slow. Now this is fixed so that scrolling is smoothly accelerated even in a slow-rendering document.

The default starting speed and acceleration of Ctrl+arrows scrolling are slightly increased. (They are both settable in Preferences.)

Tools

Paint Bucket tool

The new Paint Bucket tool works exactly as you would expect: click in any area bounded on all sides and it will fill it with color. Being a vector tool, however, Inkscape's Paint Bucket just creates a new path that "fills in" the area in which you clicked.

It is important to note that the tool is perceptual, not geometric. That is, when looking for the boundaries around the point you clicked, it takes for such boundaries any visible color changes. This means that filling will stop at gradients, blurs, and even the color boundaries in imported bitmaps, but will ignore any paths or other objects that are fully (or almost) transparent or for any other reason do not stand out from the background. In short, it will work exactly as if you were filling a rasterized version of your image in a bitmap editor like Photoshop or GIMP - but will give you a vector object to work with.

For example, now you can scan a pencil sketch, import the bitmap into Inkscape, and quickly fill all its cells with colors even without tracing the bitmap first. This is a very convenient and interactive way of digitizing your paper drawings, making the traditional bitmap tracing unnecessary in many cases.

Internally, the tool works by performing a bitmap-based flood fill on a rendered version of the visible canvas, then tracing the resulting fill using potrace and placing the traced path into the document.

It places the rendered path onto the current layer, so you can have a layer on top (for example, "Inks") and select the layer below ("Colors") and do the fills so that they always appear below the Inks.

The resolution of the bitmap image used to perform the trace is dependent upon your current zoom level -- the more zoomed in to an area that you are, the higher the resolution of the bitmap-based flood fill. So, if you are got a fill that is too imprecise, has rough corners, or don't go into small nooks and appendices where it is supposed to go, just undo, zoom in closer and repeat filling from the same point. Conversely, if the fill leaks out through a small gap, zoom out to make the gap less visible and fill again.

Like all object-creating tools, the Paint Bucket may use the last-set style for the objects it creates (this is the default), or it can use its own fixed style. You can switch between these modes on this tool's page in Inkscape Preferences (Ctrl+Shift+P).

In the tool's Controls bar:

Tolerance (set in per cent units) controls how large must be color difference at a point (compared to the initial click point) to stop the fill. Zero tolerance means only the area of strictly the same color will be filled; the larger the tolerance, the easier it will be for the fill to leak into adjacent different-color areas. The default value is 10%.

You can control the amount of inset/outset to be applied to the created fill path. Setting a positive outset causes fill paths to be larger than the filled bitmap area (good for eliminating anti-aliasing errors), while setting a negative outset causes the path to be smaller. This works the same as the Outset and Inset path commands.

Paint Bucket's perceptual fill can use either all visible colors or specific color channels. You can restrict the fill algorithm to the following channels:

Red

Green

Blue

Hue

Saturation

Lightness

Alpha

An auto gap setting. When enabled, Paint Bucket will try to close any gaps in the area boundaries that would normally cause the fill to spill out of the desired area. There are four settings to auto gap:

None

Small (fill gaps up to 2 pixels in size)

Medium (4 pixels)

Large (6 pixels)

A style swatch on the far right of the bar shows the style that will be used for the next fill object you create.

The tool's shortcuts are:

Single click performs filling from the click point.

Shift+click performs filling from the click point and then unions the resulting path with the selected path. This way, if your first attempt did not fill in all of the desired area, you can Shift+click the remaining corner to fill it in separately and combine the result with the result of the previous fill.

Ctrl+click on an object simply changes that object's fill to the current fill color of the tool, and Shift+Ctrl+click changes the stroke to the current stroke color.

Click and drag performs filling from all of the points that you pass while dragging (you will see your path visualized by a red line). From each point, the fill spreads to the neighbors with the colors similar to that point - in other words, it's like clicking with this tool at each point of the drag path and unioning the results. This lets you easily fill an area occupied by a gradient or blur - just drag from the darkest to the lightest points in the area you want to fill.

Alt+click and drag works similarly to simple drag, except from each point of the drag path, the fill spreads to the neighbors (if any) with the colors similar to the initial point (the point where you started the drag). This lets you fill a series of similarly-colored yet separated areas (for example, multiple cells in a cartoon) by starting the drag in one of those areas, and alt+dragging the tool through all the other areas.

A hidden preference, tools.paintbucket.fillaccuracy, can be used to speed up fill operations at the cost of some accuracy. It works by skipping some pixel checks when fillingthe bitmap portion of the image. This can be set from 0-5.

Gradient Tool

Stops in gradients can be added, deleted, and edited on-canvas now.

Stops can be added by double clicking or by Ctrl+Alt+Click on the gradient line.

Stops can be deleted by Ctrl+Alt+Click on a stop or by the Del key for all the selected stop(s).

When you delete an end stop, the nearest intermediate stop becomes the new end stop of the gradient (without moving - i.e., the gradient span becomes shorter).

When you delete an end stop and there are no intermediate stops, the object will be painted with a solid fill taken from the color & opacity of the remaining stop.

More than one stop can be selected at a time by Shift+click.

Can be moved together if next to each other.

Can be deleted at the same time.

When you have one of the gradient handles selected, its style (color and opacity) is reflected by the selected style indicator (left of the statusbar) and the Fill&Stroke dialog. Previously, opacity of a gradient handle was reflected as fill-opacity and stroke-opacity; now it is reflected as master opacity (the "O:" spinbutton in the selected style indicator, the "Master opacity" slider in Fill&Stroke). This makes it much easier to view and change opacity of gradient handles using only the selected style indicator in the statusbar.

When multiple gradient stops are selected, the selected style indicator (in the statusbar) displays and controls the averaged color and opacity of the selected stops.

If the selected object(s) have gradient in fill or stroke, the selected style indicator in the bottom-left corner of the editing window now displays a live gradient preview prefixed by R or L to indicate Radial or Linear gradients (instead of displaying "L Gradient" or "R Gradient" text labels as before). Also, this and other similar widget now use italic font face to indicate None and bold to indicate Unset.

Calligraphy tool: Engraver's Toolbox

Several new features were added to the Calligraphic pen to make
Inkscape capable of the ancient art of line
engraving. Traditional engraving is a very labour-intensive
process, and while for a long time it was the only practical way
of reproducing lifelike images in black-and-white print, about a
century ago it was almost completely displaced by automatic
halftone screens. However, line engravings have their
characteristic charm, and there's no reason not to try to
resurrect this art form with the help of Inkscape.

A brief visual guide to the new functionality can be seen on
these screenshots:

Tracking a guide path with Ctrl

One of the most common operations in line engraving is
hatching (or sometimes cross-hatching when several
hatching grids cross): filling a space with many parallel
straight or variously curved lines (usually of varying width to
represent a gradual shading). You could try to achieve a similar
effect with e.g. path interpolation (blending), but it is rather
cumbersome and limited; manual drawing of hatch lines, on the
other hand, is tedious and nearly impossible to do
uniformly. Now Inkscape provides "assisted hatching" by
tracking a guide path, allowing you to hatch quickly and
uniformly and at the same time giving you sufficient manual
control over the process.

Here's how to do this. First, select the guide path that
you will track. It may be another calligraphic stroke, any path
or shape, or even a letter of a text object. Then switch to
Calligraphic pen, select the desired parameters (line width,
angle, fixation etc.) and, before starting to draw, press
Ctrl. You will see a gray track circle centered at your
mouse pointer and touching the closest point on the selected
guide path. (If you have no guide path selected, a statusbar
message will tell you to select it.)

Now move your mouse close to the guide path, so that the track
circle radius is equal to the desired spacing of your hatch
pattern, and start drawing along the guide path. At that moment,
the radius of the circle gets locked; now the circle slides
along the guide path - and the actual stroke is drawn by the
center of the tracking circle, not by your mouse point. As
a result, you are getting a smooth stroke going parallel to the
guide path and always at the same distance from it.

When the stroke is ready, release your mouse button (or lift
your tablet pen) but do not let go of the Ctrl key because
as long as you have it pressed, the tool remembers the hatch
spacing you set when you started drawing. Now, you have just
created a new stroke and, as usual with Inkscape tools, it gets
selected instead of what was selected before. In our case, this
means that the newly drawn stroke itself becomes the new guide
path. Next, you can draw a second stroke along the first one,
then a third one along the second, etc. Eventually you can fill
any desired space with uniform hatching.

Alternatively, if you uncheck "Select new path" in the Calligraphy tool preferences, newly created strokes will not be selected, so your original guide path will be kept selected. In this mode, Inkscape will increase the tracking distance after each created stroke so that you can create uniformly spaced hatching by tracking a single guide path.

The attachment to the guide path is not absolute. If you stray
your mouse pointer far enough from the guide path, you will be
able to tear it off (the track circle turns from green to red)
and move freely. This is intentional; this feature allows you,
for example, to continue drawing a stroke past the end of a
guide stroke, thus making your hatching cover a wider area than
the initial guide path. Special care is taken to make such
tearing off as smooth as possible and to suppress violent jerks,
but this is not always possible; the general advice is to not
try to hatch too fast. If jerking and unintended tearoffs still
bother you, try increasing the Mass parameter.

Also, special code is in place to prevent flipovers - accidental
jumps to the other side of the guide path. Brief flipovers are
suppressed, but if you intentionally go over to the other side
and stay there, eventually Inkscape will obey and your tracking
stroke will also flip over to follow you.

Tracking a guide also allows some slight feedback by gradually
changing the tracking distance in response to your drawing
behavior. Thus, if you're consistently trying to draw closer or
farther from the guide than the current tracking distance, the
distance will correspondingly decrease or increase, so you will
get a hatching that is slightly spacing in or out. (The effect
is very slight, however, so as not to become a nuisance.) Also,
note that since tracking follows the edge of the stroke, strokes
of varying width (such as those tracing background, see below)
will result in gradual bending of the hatching pattern as you
proceed.

Tracing background by stroke width

There is a new toggle button on the Calligraphy tool's controls
bar, Trace background. When on, the width of your pen
depends on the lightness of the background under the stroke in
each point, so that white translates into the minimum stoke
width (1) and black translates to the maximum (which is set by the
Width parameter). This can work alone or in combination with
pressure sensitivity, depending on whether the "Use pressure" button
is also toggled.

This feature allows you to not only hatch over an imported
bitmap image or any drawing, but to do so automatically
reproducing the highlights and shades of the background with
your strokes becoming lighter and heavier as needed.

Thinning/thickening of paths with Alt

Even with background tracing, the visible lightness/darkness of
a hatching may not correspond too well to your artistic
intention. Also, with guide tracking, the ends of strokes are
often far from ideal - they may be too blunt or have unsightly
bends or blobs. This is where the new thinning/thickening
function is indispensable.

While in the Calligraphy tool, press Alt. You will see a
orange-colored circle indicating the area that will be affected;
this area is 10 times the size of the pen when you draw (so you
can change it by changing the Width parameter on the
toolbar).

Now select some or all of the paths or groups containing paths (as with most
tools in Inkscape, only selected objects are changed), for
example by pressing Ctrl+A, and start Alt+dragging over
them. Where you touch them, paths become thinner, as if
melting away, up until total disappearance. Conversely,
Shift+Alt+dragging makes selected paths thicker in places
where you touch them.

As with the Calligraphy pen itself, the size of the
thinning/thickening area by default depends on zoom; simply
zooming in or out is often easier than adjusting the width if
you want to cover a smaller or larger area.

The force of
the effect also depends on zoom (or in other words, it stays the
same when measured by screen pixels, same as when you move and
object by Alt+arrow keys). Between the center and the edge of the circle, the force decreases along a bell-like curve, so that the action of the tool on paths is always smooth. Also, if you have a pressure-sensitive tablet, the force of thinning/thickening also
depends on pen pressure; tapping slightly produces gradual
lightening or darkening of your drawing, while pressing heavily
will work as a kind of quick "erasing" (with Alt) or
"blackening" (with Alt+Shift).

Of course, thinning/thickening is useful not only for calligraphic strokes. You can select any simple path (such as
an ellipse converted to path) and start sculpting it,
spawning smooth treacle-like appendages with Alt+Shift and
melting them away with Alt. Unlike the "node sculpting" mode in
the Node tool, however, this does not require adding new nodes
to the shape or selecting any nodes. This new functionality is
somewhat similar to the "Pucker" and "Bloat" tools in the latest
versions of Adobe Illustrator, except that in Inkscape it works
softer and is easier to control.

Known problems with thinning/thickening: (1) it is rather
slow; (2) it quickly eats memory; and (3) it is sometimes buggy
- thin calligraphic strokes may suddenly disappear or change
their shape drastically as you're Alt+stroking them. For (3), it
helps to undo the bad change and try again with less pressure on
the pen - if you do your thinning in several light touches
instead of one heavy press, usually you will be able to get the
desired result without the buggy behavior. In general, however,
all these problems stem from the livarot library that we use for
geometric manipulation of paths. Fortunately, livarot is
scheduled for replacement by lib2geom, a new library now in
development, so hopefully these issues will be addressed then.

Misc features

For consistency with other drawing tools, drawing with Shift in Calligraphy tool automatically unions the newly created stroke with whatever paths were selected (and selects the result). Thus, you can do a series of overlapping Shift+strokes to create one unioned path object instead of separate objects as before.

To facilitate changing the Width parameter, the Home/End keys in Calligraphy tool switch you to the minimum (1) and maximum (100) width, correspondingly. (This is in addition to the Left/Right arrow keys that change Width by 1; remember also that you can press Alt+X, type any width, and press Enter.)

Selector

A new selection mode is available: selecting by touch. In this mode, you draw a freehand path across the objects; when you release mouse button, all objects that are touched by this path get selected. This mode is very convenient in situations where you need to select objects so intermingled that selecting them by the rectangular rubberband is too difficult and so numerous that click-selecting them one by one is too tedious.

To activate selecting by touch, whenever you are drawing a rubberband rectangle, just press Alt to switch it to the touch mode. The rectangle will disappear and a red touch path will be shown instead. When dragging from an empty space, you can press Alt first and then start to drag to get the touch mode (note that your selection must be empty, otherwise Alt+dragging will move the selected objects instead). To start a touch selection from a point over an object, or to add to existing selection by touching, press Shift+Alt and then start to drag.

Horizontal/vertical flipping: So far, flipping a selection made it flip within its bounding box, so that the latter remained fixed. In the move/scale mode of the selector tool, this behaviour remains unchanged. However, in rotate/shear mode flipping now happens about an (imaginary) vertical/horizontal axis through the rotation center. This is very handy, since the latter can be freely dragged around and snaps to all kinds of objects if desired.

Node Tool:

[sculpt profiles - bbyak]

If any of the nodes in the currently selected path is mouseovered, then horizontal/vertical flipping ('H' and 'V' keys), stepwise rotation ('[' and ']' keys) and scaling ('<' and '>' keys) now all use this specific node as center/axis. If there is no mouseovered node, the center of the bounding box is used instead (as is currently the case unconditionally). Nodes that are covered by one of their handles are also detected as mouseovered.

Text Tool:

[text toolbar - deadchip]

Snapping and grids

Snapping behavior has been implemented or improved for drawing of new shapes, for dragging the nodes of existing shapes, for gradient handles, and for clones. Snapping of text baselines works again. Snapping distance is now set in screen pixels and is therefore independent of zoom. Furthermore, the bug where "node-to-node" snapping caused jerky movement of nodes is fixed; snapping while skewing has been implemented; any object snaps with its rotation axis (which can be arbitrarily moved and whose position is remembered for every object); the aspect ratio is correctly preserved while scaling with snapping turned on; all four boundingbox corners now snap instead of only the lower-left and upper-right; snapping while uniformly scaling has been improved.

The confusing "Default transformations origin" option is removed. Now Inkscape always uses the opposide edge of the object's bounding box as the transformation origin (though the bounding box itself can now be different, see next item).

A new preference option has been added to specify the kind of bounding box to be used (see Inkscape Preferences, Tools, Selector). You can choose between the visual bounding box (which takes into account the stroke width, markers, and blur margins; this is the default behavior) or geometric bounding box (which encloses only the path itself, disregarding stroke width).

Grids:

a new tab in the document properties dialog, solely meant for grids; the former grid/guide tab is now solely for guides. I envision a list of guides there in the future, for easier deletion of guides etc.

more than one grid can be active at the same time, although i am having trouble in finding a usefull case for this

multiple views on the same document share the same grids, but the grid can be turned off for each view separately. For example: one could have an overview view without grid enabled. Duplicate that window and zoom in on some detail; then grids can be shown only for that view, and snapping will only happen in those views for which grids are enabled. (sorry i am not able to explain more clearly)

grid information is now stored in SVG as a child of sodipodi:namedview. Can someone please make an extension that converts an old grid definition to the new format?

axonometric grid (not yet snapping)

dots instead of lines

From developer perspective:

implementation of new grids is much easier now; subclassing CanvasGrid and adding an entry in the is enough. Have a peek at how the rectangular grid is implemented (CanvasXYGrid).

note that there is no longer "the grid", there might be several grids active now!

[Future plans (i will not be working on this soon, due to GSoC Live effects!):

possibility of enabling not all but a selection of grids for a view. Eg. when there are 4 grids defined in the document, only enable grid2 for a certain view.

new grids!

better snapping mechanism to enable snapping to intersections of guides&grids and grids&grids.

A side effect of removal of old gridcode: apparantly the origin of the desktop rules used to be set to the origin of the grid. I find this strange: specifying a grid origin of (2,2) would have me think the origin would be at ruler location (2,2) instead of (0,0) as it is in 0.45.1.
I have commented the grid-origin correction to the ruler range, because now there is not a single grid anymore to correct it for. Isn't there a control somewhere to define the documents origin? Now the ruler origin is set to (0,0) -- johan]

Filters

Blend modes

[kiirala]

Effects

The new Render > Gear extension creates a mechanical gear given the number of teeth, the circular pitch (in px units), and the pressure angle.

[spirograph]

[barcode]

The Whirl extension uses the center of view as the center of whirl, so you don't have to enter the center coordinates numerically.

The Render > Grid extension has got an extended range of grid spacings, from 0.1 to 1000 px.

Bitmap export

Batch export: The Bitmap Export dialog (Ctrl+Shift+E) got a new checkbox, Batch export all selected objects. This checkbox is available when two or more objects are selected. If it is checked, instead of exporting selection as a whole, Inkscape exports each selected object separately into its own PNG file. This uses each object's export hints (i.e. export filename and DPI) if they are remembered from a previous export; otherwise, the filename is created from the object ID and the DPI is 90 pixels per inch. Caution: Unlike regular export, batch export overwrites all existing PNG files without warning.

This makes it possible to implement all kinds of image slicing and automated export scenarios. For example, if you are working on a web site design, you can create a separate "export" layer. In that layer, "slice" your web page image into separate areas by creating invisible rectangles with no fill and no stroke. Select each rectangle (by Tab/Shift+Tab, or by switching to Outline mode where even an invisible rectangle can be selected by clicking on its outline) and export it into the corresponding filename (which gets saved as that object's export hint). After that, if you do any changes to your graphics, it's very easy to reexport all the slices: just switch to the "export" layer, select all in that layer (Ctrl+A), and export with the Batch export selected objects checkbox on.

Hide all except selected: A new checkbox allows you to hide in the exported image everything except selected object(s).

The Export dialog automatically appends the .png extension to the export filename you specify.

Import/Export

[new wpg lib - ted gould]

Command line

Several new command line options are added that make Inkscape even more scriptable and automatable than before.

--verb-list will list all the Verb IDs and their names in Inkscape. This makes writing your own menus and hotkeys much easier as you can easily find out what the choices are.

--verb followed by a verb ID allows you to specify a verb to be called on every document opened by Inkscape initially from the command line.

--select followed by a node ID will allow you to add a node to the list of selected objects.

These options can be used, for example, for performance testing. You could do something like this:

$ time inkscape --verb=FileClose my_complex_file.svg

to measure the time it takes to load and display the file.

Of course, with the ability to select objects, it can be much more useful than
that. You can call effects, or any other verb, then FileSave and
FileClose to automate all kinds of things on your drawings.

UI

Markers

stock markers now appear in the "recently used markers" section of the marker selector dropdowns in the Fill & Stroke dialog. Before, any markers with stock id's (including markers modified by the user) were hidden, making it difficult to work with modified stock markers.

Print dialog integration

Print Dialog: The GTK Unix Print Dialog has been hooked up! From the dialog, you can select any of the Postscript-capable printers known to your system and configure them as with any other GTK application.

Even more improvements

[if enabled! - mental] A new cairo-based PDF exporter has been added to Inkscape. Inkscape 0.46 can export shapes, strokes, transparency, gradients, patterns, text, and images correctly to cairo. While clipping paths and masks are known to be faulty or missing. cairo will write a PDF with vector graphics when possible and fall back to raster graphics when needed. What can be exported as vectors and how much of the image will be rasterized when the fallback kicks in depends on your version of cairo. cairo version 1.2 with the pdf backend compiled in is the minimum requirement for any cairo-based PDF exports.

Gnome VFS Improvements: Gnome VFS Non-Local files are now usable through all of our file choosers in Open, Save and Export. This compile-time option allowed people to open any Gnome-VFS-based URI from the command-line in the past, but not non-local resources (WebDAV, SFTP, etc) and this now allows for all the lovely possibilities Gnome-VFS provides.

In previous versions, Inkscape didn't allow you to group a single object. Yet in some cases, this operation is useful (for example, to blur the clipped edged of an object, or apply more than one clippath/mask to an object). Now this limitation is removed; just select any single object and group it to get a single-object group.

The somewhat cryptic "F:" and "S:" labels in the selected style indicator (at the left end of the statusbar) and in tool's style swatches are now spelled out as Fill: and Stroke:. We believe this makes the interface, even if less space-efficient, a bit more friendly for newbies.

The style swatches at the right end of object-creating tools' control bars now open the Preferences page of the corresponding tool when clicked. Also, now these swatches display a tooltip explaining its purpose (e.g. "Style of new rectangles", "Style of new calligraphic strokes", etc.)

After dragging a curve segment in Node tool, Inkscape no longer selects the two adjacent nodes if they were not selected before.

The Tile Clones dialog now uses the object's defined rotation axis (which can be freely moved by Selector tool and which is saved separately for each object) for all rotations (including both symmetry rotations and the Rotation tab rotations), scales, and flips. This renders unnecessary the previous workarounds where you had to group an object with another transparent object to affect how it's rotated by the clone tiler.

In Pencil and Calligraphic tools, pressing Esc or Ctrl+Z while drawing cancels the currently drawn path or stroke. When not drawing, these keys work as before (Esc deselects, Ctrl+Z undoes last action). (This is the same behavior as in the Pen tool where it was introduced in a previous version.)

A set of new verbs has been added to allow the user to easily unlock all locked objects or unhide all hidden objects. There are two variants one that operates on the current layer and its children and one that operates globally. While searching for hidden or locked object descendants of locked layers are ignored.

The list of folder shortcuts in the Open dialog includes the folder with Inkscape's SVG examples for easy access. Similarly, the Save dialog has a shortcut for the user's own templates dialog making it easy to save the current document as a template (if saved as default.svg, it will be loaded every time you run Inkscape or create new document with Ctrl+N; with any other name, it will be added to the File > New submenu).

For time-intensive operations such as Paint Bucket and Simplify, the system's busy wait cursor is displayed to indicate to the user that Inkscape is actively working, and not frozen.

[statusbar updates: save, ...]

Several improvements in inkview: busy cursor is shown while loading file, the button window stays on top and responds to keyboard shortcuts; several memleaks stopped and bugs fixed. The "slideshow mode" of the main inkscape application (-s or --slideshow command line option) is removed; use inkview instead.

Notable bugfixes

These are bugfixes compared to 0.45.1; for a list of fixes in 0.45.1 compared to 0.45, see 0.45.1 release notes

The sodipodi:docbase attribute is no longer added to the root <svg> element. This attribute used to keep the latest directory that the document was saved to, and thus represented a mild privacy violation (i.e., by sharing your Inkscape SVG files you allowed others to have a peek into your directory structure). Note, however, that Inkscape does not remove this attribute from old documents it opens; if you want you can remove it yourself. Inkscape just no longer creates this attribute in new documents.

Inkscape now properly quotes font-family values and therefore can use fonts with various nonalphanumeric characters in their names, which previously failed.

If you have saved documents with a previous version of Inkscape which used right-to-left text (e.g. Arabic, Hebrew) then the paragraph alignment of non-flowed text has been reversed in this release. This is due to a bug in previous versions - the new behaviour is compliant with the SVG specification and compatible with other editors and viewers. To correct your images, simply reverse the paragraph alignment by selecting the text and clicking the appropriate button on the toolbar.

A regression in 0.45 caused crashes when undo or redo was attempted before the previous action could complete (e.g. pressing ctrl+z while you are still drawing a rectangle). This is now fixed.

Previously, if there was a single invalid property in a style attribute, the entire attribute was discarded, i.e. the object lost all styling. Now Inkscape's behavior is more compliant to the CSS specification: it ignores only the invalid property but reads in all the rest.

Several bugs are fixed in searching for linked images. Now moving SVG documents with their associated images to a different place or a different machine should work more reliably.