Changelog
[4.2.0]
- fix(fabric.utils): ISSUE-6566 Fix SVGs for special Arc lines #6571
- fix(fabric.Canvas): Fix mouse up target when different from action start #6591
- added: feat(fabric.controlsUtils): Fire resizing event for textbox width #6545
- added: feat(fabric.controlsUtils) Move drag to actions to control handlers #6617
[4.1.0]
- feat(Brushes): add beforePathCreated event #6492;
- feat(fabric.Path): Change the way path is parsed and drawn. simplify path at parsing time #6504;
- feat(fabric.Path): Simplify S and T command in C and Q. #6507;
- fix(fabric.Textbox): ISSUE-6518 Textbox and centering scaling #6524;
- fix(fabric.Text): Ensure the shortcut text render the passed argument and not the entire line #6526;
- feat(fabric.util): Add a function to work with path measurements #6525;
- fix(fabric.Image): rendering pixel outside canvas size #6326;
- fix(fabric.controlsUtils): stabilize scaleObject function #6540;
- fix(fabric.Object): when in groups or active groups, fix the ability to shift deselect #6541;
[4.0.0]
- fixed the gesture module to not break with 4.0 #6491;
- fix(fabric.IText): copy style in non full mode when typing text #6454;
- feat(fabric.Controls) expose the extra utils for control handling. Breaking: rename fabric.controlHandlers and fabric.controlRenderers to fabric.controlsUtils.
[4.0.0-rc.1]
- fix(fabric.Canvas): ISSUE-6314 rerender in case of drag selection that select a single oobject. #6421;
- feat(text): allow correct cursor/selection position if text is edited inside a group. #6256;
- feat(fabric.Control): remove position option in favor of x and y #6415;
- fix(fabric.Object) ISSUE-6340 infinite recursion on groups #6416;
- fix(fabric.Object): geometry mixin fix partiallyOnscreen #6402;
- fix(fabric.Image): ISSUE-6397 modify crossOrigin behaviour for setSrc #6414;
- Breaking: fabric.Image.setCrossOrigin is gone. Having the property on the fabric.Image is misleading and brings to errors. crossOrigin is for loading/reloading only, and is mandatory to specify it each load.
- Breaking: fabric.Control constructor does not accept anymore a position object, but 2 properties, x and y.
[4.0.0-beta.12]
- fix(fabric.IText): respect value of
cursorColor
#6300; - fix(fabric.Textbox): Improve splitByGrapheme and charSpacing #6298;
- feat(controls): Reintroduce flip by scaling and lockScalingFlip #6313;
[4.0.0-beta.11]
- fix(itext): improved style handling for new lines #6268
- fix(controls): Fix flip and controls and skewY and controls. #6278
- fix(controls): Current position with handlers is wrong if using skew #6267
- breaking: setCoords has only one argument now
skipCorners
boolean. setCoords will always update aCoords, lineCoords. If skipCorners is not specified, it will alos update oCoords(); - feat(fabric.Image): Image.imageSmoothing for fabric.Image objects #6280
- fix(fabric.StaticCanvas): export to dataUrl and canvasElement will respect imageSmoothingEnabled #6280
- fix(fabric.Image): toSVG export with missing element won't crash #6280
- added: added fabric.util.setImageSmoothing(ctx, value);
- added svg import/export for image image-rendering attribute
- fix(svg_import): Fix some parsing logic for nested SVGs. #6284
- fix(fabric.Image): do not crash if image has no element #6285
BREAKING:
- removed 2 utils member that was not used anywhere: fabric.util.getScript, fabric.util.getElementStyle
- remove private member _setImageSmoothing in the canvas: use fabric.util.setImageSmoothing(ctx, value);
[4.0.0-beta.10]
- fix(controls): fix missing target in canvas event options #6251
- fix(controls): correct position for offsets #6250
- feat(utils): Added more error flag passing throughout functions #6238
[4.0.0-beta.9]
- fix(controls) show offsetX/offsetY correctly. #6236
- fix(controls) ISSUE-6201 Restore per object setting of controls visibility #6226
- fix(svg_parser): ISSUE-6220 Allow to parse font declaration that start with a number #6222
[4.0.0-beta.8]
- fix(IText) Stop composition events on mousedown to enable cursor position on android keyboards #6224
- fix(controls): Handle textbox width change properly #6219
- fix(controls): correctly handling the uniform scaling option #6218
- fix(fabric.Object): fix activeSelection toDataURL canvas restore #6216
- fix(svg_parsers): Add support for empty tags #6169
- fix(SVG_export, text): Check font faces markup for objects within groups #6195
- feat(animation): Extend fabric.util.animate animating colors and other properties#6191
- fix(svg_export): remove extra space from svg export #6209
- fix(svg_import): ISSUE-6170 do not try to create missing clippath #6210
- fix(fabric.Object) Adding existence check for this.canvas on object stacking mixins #6207
[4.0.0-beta.7]
feat(controls): Added controls mouseUpHandler and mouseDownHandler #6158 Removal of deprecated methods / patterns. #6111
- removed Object.setShadow, and BaseBrush.setShadow. change
rect.setShadow(options)
torect.set('shadow', new fabric.Shadow(options))
- removed Object.transformMatrix.
- removed
object:selected
event. useselection:created
. In the callback you will still findtarget
in the options, but also you will findselected
with all the objects selected during that single event. - removed Gradient.forObject. No alternative available.
- removed Object and canvas
clipTo
. Use Object.clipPath; - removed Canvas.loadFromDatalessJSON, it was just an alias for
loadFromJSON
- removed
observe
,stopObserving
,trigger
from observable. Keep usingon
,off
,fire
. - removed the Object.set ability to take a function as a value. Was rather strange to use.
- removed Object.setGradient. Change
rect.setGradient(options)
withrect.set('fill', new fabric.Gradient(otherOptions))
. The options format is slightly different, but keeping 2 formats does not really make sense. - removed Object.setPatternFill. Change
rect.setPatternFill(options)
torect.set('fill', new fabric.Pattern(options))
; - removed Object.setColor. Change
rect.setColor(color)
torect.set('fill', color)
- removed fabric.util.customTransformMatrix. Use the replacement fabric.util.composeMatrix
[4.0.0-beta.6]
fix(fabric.IText): exitEditing won't error on missing hiddenTextarea. #6138
[4.0.0-beta.5]
fix(fabric.Object): getObjectScaling takes in account rotation of objects inside groups. #6118
[4.0.0-beta.4]
fix(fabric.Group): will draw shadow will call parent method. #6116
[4.0.0-beta.3]
fix(controls): control offset rendering code had extras beginPath
that would clear all but not the last of them #6114
[4.0.0-beta.2]
fix(controls): Control.getVisibility will always receive the fabric.Object argument.
[4.0.0-beta.1]
breaking: All your old control code override will not work
breaking: uniScaleTransform
has been renamed in uniformScaling
, meaning changed and the default value swapped. The behaviour is unchanged, but now the description and the name match.
breaking: Object.lockUniScaling is removed. Alternatives to get the same identical functionality with less code are being evaluated.
breaking: Canvas.onBeforeScaleRotate is removed, developers need to migrate to the event `before:transform’
[3.6.2]
- fix fabric.Object.toDataURL blurriness on images with odd pixel number #6131
[3.6.1]
- fix(gradient, text): ISSUE-6014 ISSUE-6077 support percentage gradient in text #6090
- fix(filters): ISSUE-6072 convolution filter is off by one #6088
- fix(transform): Fix a bug in the skewing logic #6082
[3.6.0]
- fix: ISSUE-5512 better Clippath transform parsing in SVG #5983
- fix: ISSUE-5984 Avoid enter editing in non selectable object #5989
- Tweak to object._setLineDash to avoid cycles when nothing in array #6000
- fix: ISSUE-5867 Fix the extra new line selection with empty line #6011
- Improvement: Use SVG Namespace for SVG Elements #5957
- Improvement: ISSUE-4115 - triggers in/out events for sub targets #6013
- Improvement: Upper canvas retina scaling #5938
[3.5.1]
- Fix for textbox non defined in scaleObject #5896
- Fix canvas pattern as background and exports #5973
- Fix for type error if style is null when checking if is empty #5971
- Fix for load from datalessJSON for svg groups with sourcePath #5970
[3.5.0]
- Deprecation: deprecated 3 method of the api that will disappear in fabric 4: setPatternFill, setColor, setShadow.
- Fix: remove line dash modification for strokeUniform #5953
- Improvement: ISSUE-5955 parse svg clip-path recursively #5960
- Fix: object.toCanvasElement of objects in groups #5962
- change pencil brush finalize to be in line with other brushes #5866
[3.4.0]
- Support fill-opacity on gradient parsing from SVG. #5812
- Rewrite gradient parsing from SVG to work with more transformation and combinations of attributes. #5836
- Added Gradient.gradientUnits property to support percent based gradients on shapes.#5836
- Changed animation logic so that onComplete gets always called with the final values of the animation.#5813
[3.3.0]
- Differently support multi mouse events, fix multi touch on various browser #5785
- Word boundary search update on grapheme clusters #5788
- Enable deps free version #5786
- Remove variables named as reserved words #5782
[3.2.0]
- Fix: Better handling of upperCanvas in toCanvasElement. #5736
- Add: Pass raw event information to brushes #5687
- Deprecation: officially deprecated Object.transformMatrix #5747
- Fix: Fix group.toSVG regression. #5755
- Fix: PencilBrush regression on simple points. #5771
[3.1.0]
- Fix: unbreak IE10. #5678
- Improvement: Support scientific notation with uppercase E. #5731
- Add: PencilBrush brush now support
decimate
property to remove dots that are too near to each other. #5718
[3.0.0]
- Breaking: removed support for node 4 and 6. #5356
- Breaking: changed objectCaching meaning to disable caching only if possible. #5566
- Breaking: private method
_setLineStyle
can set only empty object now #5588 - Breaking: private method
_getLineStyle
can only return boolean now #5588 - Fix: splitByGrapheme can now handle cursor properly #5588
- Add: Added hasStroke and hasFill, helper methods for decisions on caching and for devs, change image shouldCache method #5567
- Fix: Canvas toObject won't throw error now if there is a clipPath #5556
- Add: added
nonScaling
property to shadow class #5558 - Fix: fixed import of Rect from SVG when has 0 dimensions. #5582
- Fix: Shadow offset in dataurl export with retina #5593
- Fix: Text can be used as clipPath in SVG export (output is not correct yet) #5591
- Add: Fabric.disableStyleCopyPasting to disable style transfers on copy-paste of itext #5590
- Fix: avoid adding quotes to fontFamily containing a coma #5624
- Fix: strokeUniform and cache dimensions #5626
- Fix: Do not call onSelect on objects that won't be part of the selection #5632
- Fix: fixed handling of empty lines in splitByGrapheme #5645
- Fix: Textbox selectable property not restored after exitEditing #5655
- Fix: 'before:selection:cleared' event gets target in the option passed #5658
- Added: enablePointerEvents options to Canvas activates pointer events #5589
- Fix: Polygon/Polyline/Path respect points position when initializing #5668
- Fix: Do not load undefine objects in group/canvas array when restoring from JSON or SVG. #5684
- Improvement: support for canvas background or overlay as gradient #5684
- Fix: properly restore clipPath when restoring from JSON #5641
- Fix: respect chainable attribute in observable mixin #5606
[2.7.0]
- Add: strokeUniform property, avoid stroke scaling with paths #5473
- Fix: fix bug in image setSrc #5502
- Add: strokeUniform import/export svg #5527
- Fix: GraphemeSplit and toSvg for circle #5544
- Improvement: support running in a XML document #5530
[2.6.0]
- Fix: avoid ie11 to throw on weird draw images #5428
- Fix: a rare case of invisible clipPath #5477
- Fix: testability of code under node when webgl is involved #5478
- Add: Grapeheme text wrapping for Textbox (Textbox.splitByGrapheme) #5479
- Add: fabric.Object.toCanvasElement #5481
[2.5.0]
- Fix: textbox transform report newScaleX and newScaleY values #5464
- Fix: export of svg and gradient with transforms #5456
- Fix: detection of controls in perPixelTargetFind + cache #5455
- Add: added canvas.toCanvasElement method #5452
[2.4.6]
- Fix: unbreak the svg export broken in 2.4.5 #5438
[2.4.5]
- Fix: svg import/export for canvas+clipPath and letterspacing. #5424
- Fix: avoid stroke dash from group selection to leak on upper canvas #5392
[2.4.4]
- Fix: add clipPath to stateful cache check. #5384
- Fix: restore draggability of small objects #5379
- Improvement: Added strokeDashOffset to objects and from SVG import. #5398
- Fix: do not mark objects as invisible if strokeWidth is > 0 #5382
- Improvement: Better gradients parsing with xlink:href #5357
[2.4.3]
- Fix: Shift click and onSelect function #5348
- Fix: Load from Json from images with filters and resize filters #5346
- Fix: Remove special case of 1x1 rect #5345
- Fix: Group with clipPath restore #5344
- Fix: Fix shift + click interaction with unselectable objects #5324
[2.4.2]
- Fix: Better toSVG support to enable clipPath #5284
- Fix: Per pixel target find and groups and sub targets #5287
- Fix: Object clone as Image and shadow clipping #5308
- Fix: IE11 loading SVG #5307
[2.4.1]
- Fix: Avoid enterEditing if another object is the activeObject #5261
- Fix: clipPath enliving for Image fromObject #5279
- Fix: toDataURL and canvas clipPath #5278
- Fix: early return if no xml is available #5263
- Fix: clipPath svg parsing in nodejs #5262
- Fix: Avoid running selection logic on mouse up #5259
- Fix: fix font size parsing on SVG #5258
- Fix: Avoid extra renders on mouseUp/Down #5256
[2.4.0]
- Add: Add clipPath support to canvas and svg import/export. Low compatibility yet.
[2.3.6]
- Fix: Make image.class aware of naturalWidth and naturalHeight. #5178
- Fix: Make 2 finger events works again #5177
- Fix: Make Groups respect origin and correct position ( fix spray/circle brushes ) #5176
[2.3.5]
- Change: make canvas.getObjects() always return a shallow copy of the array #5162
- Fix: Improve fabric.Pattern.toSVG to look correct on offsets and no-repeat #5164
- Fix: Do not enter edit in Itext if the mouseUp is relative to a group selector #5153
- Improvement: Do not require xlink namespace in front of href attribut for svgs ( is a SVG2 new spec, unsupported ) #5156
- Fix: fix resizeFilter having the wrong cached texture, also improved interaction between filters #5165
[2.3.4]
- Fix: ToSVG was ignoring excludeFromExport for backgroundImage and OverlayImage. #5075
- Fix: ToSVG for circle with start and end angles. #5085
- Fix: Added callback for setPatternFill. #5101
- Fix: Resize filter taking in account multiple scale sources. #5117
- Fix: Blend image filter clean after refilter. #5121
- Fix: Object.toDataURL should not be influenced by zoom. #5139
- Improvement: requestRenderAllBound add to Canvas instance. #5138
- Improvement: Make path bounding cache optional and also reacheable/cleanable #5140
- Improvement: Make the logic of isNeutralState filters work before filtering start. #5129
- Improvement: Added some code to clean up some memory when canvas is disposed in nodejs. #5142
- Fix: Make numeric origins work with group creation. #5143
[2.3.3]
- Fix: Fixed font generic names for text, measurement of zero width related characters and also trailing of cursor when zooming. #5048
[2.3.2]
- Fix: justify + charspacing + textDecoration Add and improve more events for transformations and mouse interaction. #5007 #5009
- Fix: Enter edit on object selected programmatically. #5010
- Fix: Canvas.dispose was not removing all events properly. #5020
- Fix: Make rgba and hsla regex work case insensitive. #5017
- Fix: Make group transitioning from not cached to cached work. #5021
[2.3.1]
- Improve nested svg import and text positioning, spikes. #4984
[2.3.0]
- Add and improve more events for transformations and mouse interaction #4979
- Improvement: whenever possible use cache for target transparency sampling #4955
[2.2.4]
- Fix getPointer on touch devices #4866
- Fix issues with selectionDashArray bleeding into free drawing #4894
- Fix blur filter for nodejs #4905
- Fix Register mousemove as non passive to help touch devices #4933
- Fix modified shadow tosvg for safari compatibility #4934
- Fix shader to avoid premultiplied alpha pixel getting dirty in blend filter #4936
- Add isPartiallyOnScreen method #4856
- Fix isEqual failing on array/null or objects/null/string compare #4949
- Fix pencilBrush with alpha and with rerendering canvas #4938
[2.2.3]
- improvement: Allow to parse quoted url string. url('#myid') #4881
- improvement: text fromSVG import char-spacing attribute #3718
- fix: text toSVG export with multiple spaces in safari #4880
- fix: setSrc reset width and height on images #4877
- improvements: Removed forced origin swap when rotating #4878
- fix: Make the background of canvas cover all SVG in toSVG export #4852
- fix: Added startAngle to cacheProperties for fabric.Circle #4875
- fix: Rerender all the content of upperCanvas if canvas gets resized #4850
- fix: Remove references to context when disposing #4846
- improvements: Added single quoting to font names in toSVG #4840
- improvements: Added reserved space to wrapLine functionality #4841
[2.2.2]
- Fixed: Applying filters to an image will invalidate its cache #4828
- Fixed: Attempt at fix font families that requires quoting #4831
- Improvement: check upperCanvas client size for textarea position #4827
- Fixed: Attempt to fix multiple touchends #4804
- Fixed: Wrapping of textbox with charspacing #4803
- Fixed: bad calculation of empty line in text (regression from 2.2.0) #4802
[2.2.1]
- Reworked how amd and commonJS are together in the same file.
[2.2.0]
- Fixed: super/sub script svg export #4780
- Added: Text superScript and subScript support #4765
- Fixed: negative kerning support (Pacifico font) #4772
- Fixed: removing text on mousedown should be safe now #4774
- Improved: pass to inner functions the parameter calculate coords in isOnscreen #4763
[2.1.0]
- Added: Added: Drag and drop event binding #4421
- Fixed: isEmptyStyle implementation for TextBox #4762
[2.0.3]
- Fix: now sub target check can work with subclasses of fabric.Group #4753
- Improvement: PencilBrush is now compexity 1 instead of complexity N during draw #4743
- Fix the cleanStyle was not checking for the right property to exist #4751
- Fix onBeforeScaleRotate with canvas zoom #4748
[2.0.2]
[2.0.1]
- fixed filter for blend image in WEBGL #4706
- fixed interactions between canvas toDataURL and multiplier + retina #4705
- fixed bug with originX and originY not invalidating the transform #4703
- fixed unwanted mutation on object enliving in fabric.Image #4699 ## [2.0.0]
- final
- fix dataurl and svg export on retina and rounding #4674
- avoid error if iText is removed on mousedown #4650
- fix calcOffset when text enter editing #4649
- Gradient fix parsing floats #4637
- Add CrossOrigin managment to fabric.Pattern #4618
- Add patternTransform toObject saving #4626
- normalize brushes render #4613
- avoid charspacing shortcut #4594
- Fix color toHexa() #4579
- rc3 and rc4
- more fixes to transformMatrix memoization
- Canvas.selectionFullyContained allows you to select objects just when full grabbed by the selections. #4508
- Remove some ouput of blank spaces from svg in order to avoid extra colored areas #4524
- Reinserted a performance shortcut for when there is no style at all #4519
- Manage canvas resize during a freedrawing brush without wiping the brush #4527
- Removed an extra closePath that was creating wrong visual on IntelIntegrated cards #4549
- Added a method to insert and remove text from command line #4541
- Some fixes around text styles management
- nodejs support changes: removed specific node code in order to use standard fabricjs code in nodejs.
- added fabric.util.getNodeCanvas that passed a JSDOM element allows you to get the node-canvas instance behind it and do what you need.
- rc2
- Fixed a transform matrix memoize missing width/height #4491
- Fix pattern drawing a point #4492
- Fixed Text.removeChars #4495
- Added back 2 node-canvas methods #4497
- Fix a typo not restoring hoverCursor correctly.
- rc1
- Remove node specific code #4470
- Improved Canvas.dispose code to leak less memory #4471
- Remove extra padding of cache when upper limited #4467
- Solved 2 perfomances problems with textbox #4466 #4465
- Added justify-left justify-right and justify-center #4437
- Fix Group fromObject and subTargetCheck #4454
- Fix regression on IMG from SVG #4450
- Remove cache dimensions together with canvas #4453
- Fixed some fuzzyness cases for cache #4452
- Fixed resize filter for webgl #4426
- Stop searching target during a mouse move with a transform #4442
- safeguard shaders for non supported precisions #4433
- fix insert and remove style for edge cases #4420
- Fix object.move when in active selection #4394
- Memoize calcTransformMatrix function #4418
- Make _set flag object as dirty just when a real change happen#4415
- Add browserShadowBlurConstant to adjust shadowBlur value #4413
- Fix set element not clearing the cacheTexture. #4410
- Multi selection key can be configured with an array of keys. #4363
- fix fast type in text loosing some style. #4339
- fixed division by zero with lockscaling flip.
- added paintFirst ( paint-order with svg support ) #4303
- beta7
- added a build flag for not attaching fabric to window #4199
- removed .active property from objects #4200
- Normalize Api for getSelectionStyles, setSelectionStyles #4202
- Fix shader for convolute filter #4207
- Better mouse support for lockscaling flip #4225
- Fix toDataUrl getting a blank canvas #4229
- Ouput version to json Objects #4251
- Use backstoreOnly for toDataUrl resize #4254
- Fix safari svg whitespace #4294
- Fix Gradient export for paths #4274
- Move mouseout/over in mousemove events #4283
- Fix detection of click at the end of line #4295
- added new event selection:updated #4311
- Fixed free drawing path displacement #4311
- Fixed scale equally and flipping not happening #4313
- Select by drag makes the object fires 'selected' #4314
- beta6
- incompat: New filter system with WEBGL.
- incompat: New Text/IText/Textbox code. Multibyte compatible, more accurate.
- incompat: RequestAnimationFrame is used for the automatic render calls.
- incompat: Named setter/getter are optional now.
- incompat: Removed PathGroup class
- incompat: Paths cannot be restored anymore from strings #3713
- incompat: bumped node version to 4+ and jsdom to 9. #3717
- incompat: removed the es5 / JSON shim support #3722
- fix/incompat: IText setSelectionStyles does not change anymore style if no selection is present #3765
- skipOffscreen default to true
- Text.setSelectionStyle does not change anything if there is no selection #3765
- Switch to canvas-prebuilt as dependency. Added parameter to choose the canvas package #3757
- improvement: renderControls can now be called on its own. Added parameter styleOverride to allow for overriding current properties #3887
- removed hasMoved and saveCoords from Group class #3910
- forced all fromObject and fromElement to be async, normalized api. #3996
- improvement: added support for request animation frame in mouse events #3997
- added dblclick support for all objects #3998
- textbox scale as a normal object #4052
- Removed image meetOrSlice, alignX, alignY, introduced cropX, cropY #4055
- Added Text.cleanStyle, Text.removeStyle #4060
- change: lockRotation will not hide the mtr control anymore. introduced notAllowedCursor for canvas. #4064
- improvement: added 2 percentage values to fabric.util.animate. #4068
- change: pathOffset does not get exported anymore in path.toObject, toDatalessObject export sourcePath instead of modifying path. #4108
[1.7.19]
[1.7.18]
- Fixed doubling of subtargets for preserveObjectStacking = true #4297
- Added a dirty set to objects in group destroy.
[1.7.17]
- Change: swapped style white-space:nowrap with attribute wrap="off" since the style rule was creating problems in browsers like ie11 and safari. #4119
- Fix: Remove an object from activeGroup if removed from canvas #4120
- Fix: avoid bringFroward, sendBackwards to swap objects in active selections #4119
- Fix: avoid disposing canvas on mouse event to throw error #4119
- Fix: make svg respect white spaces #4119
- Fix: avoid exporting bgImage and overlayImage if excludeFromExport = true #4119
- Fix: Avoid group fromObject mutating original data #4111
[1.7.16]
- improvement: added 2 percentage values to fabric.util.animate. #4068
- Improvement: avoid multiplying identity matrices in calcTransformMatrix function
- Fix: activeGroup did not destroy correctly if a toObject was happening
- Improvement: Pass the event to object:modified when available. #4061
[1.7.15]
- Improvement: Made iText keymap public. #4053
- Improvement: Fix a bug in updateCacheCanvas that was returning always true #4051
[1.7.14]
- Improvement: Avoid cache canvas to resize each mouse move step. #4037
- Improvement: Make cache canvas limited in size. #4035
- Fix: Make groups and statefull cache work. #4032
- Add: Marked the hiddentextarea from itext so that custom projects can recognize it. #4022
[1.7.13]
- Fix: Try to minimize delay in loadFroJson #4007
- Fix: allow fabric.Color to parse rgba(x,y,z,.a) without leading 0 #4006
- Allow path to execute Object.initialize, make extensions easier #4005
- Fix: properly set options from path fromDatalessObjects #3995
- Check for slice before action.slice. Avoid conflicts with heavy customized code. #3992
[1.7.12]
- Fix: removed possible memleaks from window resize event. #3984
- Fix: restored default cursor to noTarget only. unselectable objects get the standard hovercursor. #3953
- Cache fixes: fix uncached pathGroup, removed cache creation at initialize time #3982
- Improvement: nextTarget to mouseOut and prevTarget to mouseOver #3900
- Improvement: add isClick boolean to left mouse up #3898
- Fix: can start selection on top of non selectable object #3892
- Improvement: better management of right/middle click #3888
- Fix: subTargetCheck on activeObject/activeGroup was firing too many events #3909
- Fix: After addWithUpdate or removeWithUpdate object coords must be updated. #3911
[1.7.11]
- Hotfix: restore path-groups ability to render #3877
[1.7.10]
- Fix: correct svg export for radial gradients #3807
- Fix: Update fireout events to export the event object #3853
- Fix: Improve callSuper to avoid infinite loops (not all of them) #3844
- Fix: avoid selectionBackgroundColor leak on toDataUrl #3862
- Fix: toDatelessObject for Group #3863
- Improvement: better caching logic for groups #3864
- Fix: correct svg gradient export for radial in polygons #3866
- Fix: First draw could be empty for some objects #3870
- Fix: Always send event data to object:selected #3871
- Improvement: reduce angle calculation error #3872
[1.7.9]
- Fix: Avoid textarea wrapping from chrome v57+ #3804
- Fix: double click needed to move cursor when enterEditing is called programmatically #3804
- Fix: Style regression when inputing new style objects #3804
- Add: try to support crossOrigin for svg image tags #3804
[1.7.8]
- Fix: Fix dirty flag propagation #3782
- Fix: Path parsing error in bounding boxes of curves #3774
- Add: Middle click mouse management on canvas #3764
- Add: Add parameter to detect and skip offscreen drawing #3758
- Fix: textarea loosing focus after a drag and exit from canvas #3759
[1.7.7]
- Fix for opacity parsing in svg with nested opacities #3747
- Fix text initialization and boundingrect #3745
- Fix line bounding box #3742
- Improvement: do not pollute style object while typing if not necessary #3743
- fix for broken prototype chain when restoring a dataless object on fill an stroke #3735
- fix for deselected event not fired on mouse actions #3716
- fix for blurriness introduced on 1.7.3 #3721
[1.7.6]
- Fix: make the cacheCanvas created on the fly if not available #3705
[1.7.5]
- Improvement: draw textbackgroundColor in one single pass when possible @stefanhayden #3698
- Improvement: fire selection changed event just if text is editing #3702
- Improvement: Add object property 'needsItsOwnCache' #3703
- Improvement: Skip unnecessary transform if they can be detected with a single if #3704
[1.7.4]
- Fix: Moved all the touch event to passive false so that they behave as before chrome changes #3690
- Fix: force top and left in the object representation of a path to avoid reparsing on restore #3691
- Add: Enable
deselected
event for activeObject switch. Ensure deactivateAll call exitEditing #3689 - Fix: Perform subtargetCheck also if the group is an active object and on activeGroup #3688
- Fix: Made cursor operation more precise at high canvas zoom level #3671
- Add: Made getBoundingRect available to return both absolute or standard bounding rect #3614
- Add: Introduced calcViewportBoundaries() function for fabric.StaticCanvas #3614
- Add: Introduced isOnScreen() function for fabric.Object #3614
- Subclassed Polygon from polyline #3614
- Fix: Removed reference to hovered target when target gets removed #3657
- Fix: Removed hover cursor for non selectable objects #3643
- Fix: Switch to passive event for touch move #3643
- Fix: Restart rendering of cursor after entering some text #3643
- Add: fabric.Color support toHexa() method now #3615
[1.7.3]
- Improvement: mousewheel event is handled with target and fired also from objects. #3612
- Improvement: Pattern loads for canvas background and overlay, corrected svg pattern export #3601
- Fix: Wait for pattern loading before calling callback #3598
- Fix: add 2 extra pixels to cache canvases to avoid aliasing cut #3596
- Fix: Rerender when deselect an itext editing object #3594
- Fix: save new state of dimensionProperties at every cache clear #3595
- Improvement: Better error management in loadFromJSON #3586
- Improvement: do not reload backgroundImage as an image if is different type #3550
- Improvement: if a children element is set dirty, set the parent dirty as well. #3564
[1.7.2]
- Fix: Textbox do not use stylemap for line wrapping #3546
- Fix: Fix for firing object:modified in macOS sierra #3539
- Fix: Itext with object caching was not refreshing selection correctly. #3538
- Fix: stateful now works again with activeGroup and dinamyc swap between stateful false/true. #3537
- Fix: includeDefaultValues was not applied to child objects of groups and path-groups. #3497
- Fix: Itext style is cloned on paste action now, allow copy of styles to be independent. #3502
- Fix: Add subclasses properties to cacheProperties. #3490
- Add: Shift and Alt key used for transformations are now dynamic. #3479
- Fix: fix to polygon and cache. Added cacheProperties for all classes #3490
[1.7.1]
- Add: Gradients/Patterns support customAttributes in toObject method #3477
- Fix: IText/Textbox not blurring keyboard on ios 10 #3476
- Fix: Shadow on freedrawing and zoomed canvas #3475
- Fix: Fix for group returning negative scales #3474
- Fix: hotfix for textbox #3441#3473
[1.7.0]
- Add: Object Caching #3417
- Improvement: group internal objects have coords not affected by canvas zoom #3420
- Fix: itext cursor trails on initDimension #3436
- Fix: null check on .setActive #3435
- Fix: function error in clone deep. #3434
[1.6.7]
- Add: Snap rotation added to objects. two parameter introduced, snapAngle and snapTreshold. #3383
- Fix: Pass target to right click event. #3381
- Fix: Correct rendering of bg color for styled text and correct clearing of itext area. #3388
- Add: Fire mouse:over on the canvas when we enter the canvas from outside the element. #3388
- Fix: Fix calculation of words width with spaces and justify. #3408
- Fix: Do not export defaults properties for bg and overlay if requested. #3415
- Fix: Change export toObect to always delete default properties if requested. #3416
[1.6.6]
- Add: Contrast and Saturate filters #3341
- Fix: Correct registering and removal of events to handle iText objects. #3349
- Fix: Corrected 2 regression of 1.6.5 (dataurl export and itext clicks)
- Fix: Corrected path boundaries calculation for Arcs ( a and A ) #3347
[1.6.5]
- Fix: charspacing, do not get subzero with charwidth.
- Improvement: add callback support to all object cloning. #3212
- Improvement: add backgroundColor to all class #3248
- Fix: add custom properties to backgroundImage and overlayImage #3250
- Fix: Object intersection is calculated on boundingBox and boundingRect, intersection is fired if objects are overlapping #3252
- Change: Restored previous selection behaviour, added key to selection active object under overlaid target #3254
- Improvement: hasStateChanged let you find state changes of complex properties. #3262
- Fix: IText/Textbox shift click selection backward. #3270
- Revert: font family quoting was a bad idea. node-canvas stills use it. #3276
- Fix: fire mouse:over event for activeObject and activeGroup when using findTarget shourtcuts #3285
- Fix: clear method clear all properties of canvas #3305
- Fix: text area position method takes in account canvas offset #3306
- Improvement: Added event on right click and possibility to hide the context menu with a flag 3308
- Fix: remove canvas reference from object when object gets removed from canvas #3307
- Improvement: use native stroke dash if available #3309
- Fix: Export correct src when exporting to svg #3310
- Fix: Stop text to go on zero dimensions #3312
- Fix: Error in dataURL with multiplier was outputting very big canvas with retina #3314
- Fix: Error in style map was not respecting style if textbox started with space #3315
[1.6.4]
- Improvement: Ignore svg: namespace during svg import. #3081
- Improvement: Better fix for lineHeight of iText/Text #3094
- Improvement: Support for gradient with 'Infinity' coordinates #3082
- Improvement: Generally "improved" logic of targeting #3111
- Fix: Selection of active group with transparency and preserveObjectStacking true or false #3109
- Fix: pattern brush now create the same pattern seen while drawing #3112
- Fix: Allow css merge during svg import #3114
- Improvement: added numeric origins handling fomr 0 to 1. #3121
- Fix: Fix a defect with shadow of objects in a scaled group. #3134
- Improvement: Do not fire unecessary selection:changed events. #3119
- Fix: Attached hiddenTextarea to body fixes IE, thanks to @plainview. #3137
- Fix: Shift unselect activegroup on transformed canvas. #3144
- Added: ColorMatrix filter #3139
- Fix: Fix condition in wich restoring from Object could cause object overwriting #3146
- Change: cloneAsImage for Object and toDataUrl for object are not retina enabled by default. Added option to enable. #3147
- Improvement: Added textSpacing support for text/itext/textbox #3097
- Fix: Quote font family when setting the context fontstyle #3191
- Fix: use getSrc during image export, make subclassing easier, return eventually the .src property if nothing else is available #3189
- Fix: Inverted the meaning of border scale factor #3154
- Improvement: Added support for RGBA in HEX notation. #3202
- Improvement: Added object deselected event. #3195
- Fix: loadFromJson callback now gets fired after filter are applied #3210
[1.6.3]
- Improvement: Use reviver callback for background and overlay image when doing svg export. #2975
- Improvement: Added object property excludeFromExport to avoid exporting the object to JSON or to SVG. #2976
- Improvement: Correct the calculation of text boundingbox. Improves svg import #2992
- Added: Export id property to SVG #2993
- Improvement: Call the callback on loadSvgFromURL on failed xml load with null agument #2994
- Improvement: Clear only the Itext area on contextTop during cursor animation #2996
- Added: Char widths cache has been moved to fabric level and not iText level. Added fabric.util.clearFabricCharWidthsCache(fontName) #2995
- Fix: do not set background or overlay image if the url load fails. #3003
- Fix: iText mousemove event removal, clear the correct area for Itext, stopped redrawing selection if not necessary #3016
- Fix: background image and overlay image scale and move with canvas viewportTransform, parameter available #3019
- Added: support sub targeting in groups in events #2997
- Fix: Select transparent object on mouse up because of _maybeGroupObject #2997
- Fix: Remove reference to lastRenderedObject on canvas.remove #3023
- Fix: Wait for all objects to be loaded before deleting the properties and setting options. #3029
- Fix: Object Padding is unaffected by object transform. #3057
- Fix: Restore lastRenderedObject usage. Introduced Canvas.lastRenderedKey to retrieve the lastRendered object from down the stack #3057
- Fix: _calcTextareaPosition correctly calculate the position considering the viewportTransform. #3057
- Fix: Fixed selectionBacgroundColor with viewport transform. #3057
- Improvement: Correctly render the cursor with viewport scaling, improved the cursor centering. #3057
- Fix: Use canvas zoom and pan when using is target transparent. #2980
[1.6.2]
- Fix: restore canvas properties on loadFromJSON with includeProperties. #2921
- Fix: Allow hoverCursor on non selectable objects, moveCursor does not appear if the object is not moveable. Added object.moveCursor to specify a cursor for moving per object. #2924
- Fix: Add missing stroke.live translation, allow gradientTransform for dashed line. #2926
- Improvement: Allow customization of keys that iteract with mouse action ( multiselect key, free transform key, alternative action key, centered transform key ) #2925
- Added: Make iText fires object:modified on text change on exit editing #2927
- Added: [control customization part 1] cornerDashArray, borderDashArray. Now borderScaleFactor influences both border and controls, changed default corner size to 13 #2932
- Fix: createSVGFontFacesMarkup was failing to retrieve fonts in style #2935
- Fix: shadow not scaled with dataUrl to multiplier #2940
- Added: [control customization part 2] cornerStrokeColor. Now is possible to specify separate stroke and fill color for the controls #2933
- Fix: Itext width calculation with caching false was returning nan. #2943
- Added: [control customization part 3] Rounded corners. It is possible to specify cornerStyle for the object. 'rect' or 'circle' #2942
- Added: [control customization part 4] Selection background. It is possible to specify selectionBackgroundColor for the object. #2950
- Fix: Behaviour of image with filters with resize effects and Object to/from json #2954
- Fix: Svg export should not output color notation in rgba format #2955
- Fix: minScaleLimit rounding bug #2964
- Fix: Itext spacing in justify mode bug #2971
- Fix: Object.toDataUrl export when some window.devicepixelRatio is present (retina or browser zoom) #2972
[1.6.1]
- Fix: image with broken element throwing error on toObject() #2878
- Fix: Warning on trying to set proprietary browser version of ctxImageSmoothingEnabled #2880
- Fix: Fixed Svg import regression on color and drawing polylines #2887
- Fix: Fixed animation ease that starts and stop at same value #2888
- Fix: Allow a not stateful canvas to fire object:modified at end of transform. #2890
- Fix: Made event handler removal safer. Removing firing events will not cause errors. #2883
- Fix: Proper handling of perPixelTargetFind and multi selections #2894
- Fix: Do not clear contextTop on drawingMode, to allow drawing over animations #2895
- Change the dependencies to optional. Allow npm to continue installing if nodecanvas installation fail.#2901
- Fix: Check again the target on mouseup #2902
- Fix: On perPixelTargetFind detect corners only if target is active #2903
- Improvement: Add canvas mouseout event listener #2907
- Improvement: Make small object draggable easier #2907
- Improvement: Use sendToBack, bringToFront, bringForward, sendBackwards for multiple selections #2908
[1.6.0]
- Fix rendering of activeGroup objects while preserveObjectStacking is active. [ regression from #2083 ]
- Fix
fabric.Path
initialize with user options #2117 - Fix sorting of objects in activeGroup during rendering #2130.
- Make sure that 'object.canvas' property is always set if the object is directly or indirectly on canvas #2141
- Fix _getTopLeftCoords function that was returning TopCenter #2127
- Fix events not being fired after resize with pinch zoom #510
- Fix mouse:over, mouse:out events not receiving event object #2146
- Don't include elements from
<metadata>
during SVG parsing #2160 - Fix some iText new glitches and old bugs about style deleting and inserting, faster function for get2dCursorLocation #2153
- Change bounding box calculation, made strokewidth always considered in dimensions. Switched group stroke default to 0 strokewidth. #2155
- Fix scaling function for object with strokewidth #2178
- Fix image fromObject restoring resizeFilter #2164
- Fix double application of filter upon image init #2164
- Fix image.filter.Resize toObject and fromObject #2164
- Fix strokeWidth calculation during resize operations #2178
- Fix iText selection on upperCanvas to support transformMatrix #2173
- Removed unnecessary calls to removeShadow and restoreGlobalCompositeOperation #2175
- Fix the offset for pattern and gradients filling and stroking in text #2183
- Fix loading of stroke gradients from Object #2182
- Fix segmentation fault on node.js when image doesn't exist #2193
- Fix iText border selection when changing fontWeight #2201
- Fix calculation of object dimensions for geometry functions translation and scaling. #2206
- Fix iText cursor position on click at end of line #2217
- Fix error on parsing style string with trailing spaces #2256
- Fix delegated properties leaking on objects in a group when restoring from json #2101
- Fix cursor click position in rotated i-Text when origins different from TOPLEFT. #2269
- Fix mouse position when the canvas is in a complex style scrolling situation #2128
- Fix parser regex for not parsing svg tags attribute #2311
- Add id attribute to standard attribute parsing from SVG elements #2317
- Fix text decoration opacity #2310
- Add simple color animation utility in /src/util/animate_color.js #2328
- Fix itext paste function to check for source of copied text and strip carriage returns (\r)#2336
- Fix pattern class serialize the source using toDataURL if available #2335
- Fix imageSmoothingEnabled warning on chrome and reinit the property after setDimensions #2337
- Add ability to parse path elements with no path specified. #2344
- Fix shiftClick with activeGroup in case of normal and scaled groups #2342
- Add support for colors in shadow svg export #2349
- Add support for inner viewBoxes in svg parsing #2345
- Fix BoundingBox calculation for pathGroups that have inner transformMatrix #2348
- Fix export toObject to include transformMatrix property #2350
- Fix textbox class to supporto toSVG() and newest style fixes #2347
- Fix regression on text ( textDecoration and textlinebackground ) #2354
- Add support for multi keys chars using onInput event #2352
- Fix iText and textbox entering in edit mode if clicked on a corner #2393
- Fix iText styles error when in justify align #2370
- Add support for shadow export in svg for groups, pathgroups and images. [#2364]
- Add rendering shadows for groups #2364
- Add support for parsing nested SVGs x and y attributes #2399
- Add support for gradientTransform in setGradient(fill or stroke) #2401
- Fix Error in svg parsed that was stopping on gradient color-stop missing stop attribute #2414
- toObject method return copied arrays for array like properties #2407
- Fix Set stop value of colorstop to 0 if stop attribute not present #2414
- Fix correct value of e.button for mouse left click if e.which not supported#2453
- Add check for host property in getScrollTopLeft#2462
- Fix check for object.selectable in findTarget#2466
- Fix After rendering a gesture set originX/Y to its original value#2479
- Add support for skewing objects using shift and m-controls in interactive mode, and using object.skewX/Y #2482
- Fix gradientTransform not exported in gradient toObject #2486
- Fix object.toDataUrl with multiplier #2487 BACK INCOMPATIBILITY: removed 'allOnTop' parameter from fabric.StaticCanvas.renderAll.
- Fix mask filter, mask image is now streched on all image #2543
- Fix text onInput event to behave correctly if some text is selected #2501
- Fix object with selectable = false could be selected with shift click #2503
- Fix for mask filter when bigger or smaller image is used #2534
- Improvement: simplified renderAll logic #2545
- Improvement: Manage group transformation with skew rotate and scale #2549
- Fix: Add shadow affectStroke to shadow to Object method #2568
- Fix: Made multitouch pinch resize works with skewed object #2625
- Improvement: Added retina screen support #2623
- Change: Set default Image strokeWidth to 0 to improve image rendering #2624
- Fix: multitouch zoom gesture speed back to normal speed #2625
- Fix: fix controls rendering with retina scaling and controls above overlay #2632
- Improvements: resize SVG using viewport/viewbox. #2642
- Improvements: Svg import now supports rotate around point #2645
- Change: Opacity is no more a delegated property for group #2656
- Fix: Itext now check for editable property before initializing cursor #2657
- Fix: Better SVG export support for shadows of rotated objects #2671
- Fix: Avoid polygon polyline to change constructor point array #2627
- SVG import: support fill/stroke opacity when no fill/stroke attribute is present #2703
- Fix: remove white filter set opacity to 0 instead of 1 #2714
- Cleaning: removing unused fabric.Canvas.activeInstance #2708
- Change: remove flipping of text string when flipping object #2719
- Fix: Correct shift click on generic transformerd active groups #2720
- SVG import: parse svg with no spaces between transforms #2738
- Fix: Fallback to styleElement.text for IE9 #2754
- Fix: data url for node #2777
- Improvement: Extended font face to all text class during svg export #2797
- Fix: retina scaling dataurl and shadows. #2806
- Improvement: Better look to iText decoration shadows. #2808
- Improvement: New text shadow export to SVG. #2827
- fix: location of optimized 1x1 rects. #2817
- fix: TextBox handling of consecutive spaces. #2852
- fix: Respect shadow in svg export of flipped objects. #2854
- fix: Check presence of style for textBox in svg export. #2853
- Improvement: Added node compatibility for v4 and v5. #2872
- Fix: Canvas dispose remove the extra created elements. #2875
- IText improvements to cut-copy-paste, edit, mobile jumps and style. #2868
[1.5.0]
Edge
- Added image preserve aspect ratio attributes and functionality (fabric.Image.alignY, fabric.Image.alignY, fabric.Image.meetOrSlic )
- Added ImageResizeFilters , option to resize dynamically or statically the images using a set of resize filter alghoritms.
[BACK_INCOMPAT]
fabric.Collection#remove
doesn't return removed object -> returnsthis
(chainable)Add "mouse:over" and "mouse:out" canvas events (and corresponding "mouseover", "mouseout" object events)
Add support for passing options to
fabric.createCanvasForNode
Various iText fixes and performance improvements
Fix
overlayImage
/overlayColor
during selection modeFix double callback in loadFromJSON when there's no objects
Fix paths parsing when number has negative exponent
Fix background offset in iText
Fix style object deletion in iText
Fix typo in
_initCanvasHandlers
Fix
transformMatrix
not affecting fabric.TextFix
setAngle
for different originX/originY (!= 'center')Change default/init noise/brightness value for
fabric.Image.filters.Noise
andfabric.Image.filters.Brightness
from 100 to 0Add
fabric.Canvas#imageSmoothingEnabled
Add
copy/paste
support for iText (uses clipboardData)
[1.4.0]
[BACK_INCOMPAT] JSON and Cufon are no longer included in default build
[BACK_INCOMPAT] Change default objects' originX/originY to left/top
[BACK_INCOMPAT]
fabric.StaticCanvas#backgroundImage
andfabric.StaticCanvas#overlayImage
arefabric.Image
instances.fabric.StaticCanvas#backgroundImageOpacity
,fabric.StaticCanvas#backgroundImageStretch
,fabric.StaticCanvas#overlayImageLeft
andfabric.StaticCanvas#overlayImageTop
were removed.[BACK_INCOMPAT]
fabric.Text#backgroundColor
is nowfabric.Object#backgroundColor
[BACK_INCOMPAT] Remove
fabric.Object#toGrayscale
andfabric.Object#overlayFill
since they're too specific[BACK_INCOMPAT] Remove
fabric.StaticCanvas.toGrayscale
since we already have that logic infabric.Image.filters.Grayscale
.[BACK_INCOMPAT] Split
centerTransform
into the propertiescenteredScaling
andcenteredRotation
. Object rotation now happens around originX/originY point UNLESScenteredRotation=true
. Object scaling now happens non-centered UNLESScenteredScaling=true
.
[1.3.0]
[BACK_INCOMPAT] Remove selectable, hasControls, hasBorders, hasRotatingPoint, transparentCorners, perPixelTargetFind from default object/json representation of objects.
[BACK_INCOMPAT] Object rotation now happens around originX/originY point UNLESS
centerTransform=true
.[BACK_INCOMPAT] fabric.Text#textShadow has been removed - new fabric.Text.shadow property (type of fabric.Shadow).
[BACK_INCOMPAT] fabric.BaseBrush shadow properties are combined into one property => fabric.BaseBrush.shadow (shadowColor, shadowBlur, shadowOffsetX, shadowOffsetY no longer exist).
[BACK_INCOMPAT]
fabric.Path.fromObject
is now async.fabric.Canvas#loadFromDatalessJSON
is deprecated.
[1.2.0]
[BACK_INCOMPAT] Make
fabric.Object#toDataURL
synchronous.[BACK_INCOMPAT]
fabric.Text#strokeStyle
->fabric.Text#stroke
, for consistency with other objects.[BACK_INCOMPAT]
fabric.Object.setActive(…)
->fabric.Object.set('active', …)
.fabric.Object.isActive
is gone (usefabric.Object.active
instead)[BACK_INCOMPAT]
fabric.Group#objects
->fabric.Group._objects
.
[1.1.0]
[BACK_INCOMPAT]
fabric.Text#setFontsize
becomesfabric.Object#setFontSize
.[BACK_INCOMPAT]
fabric.Canvas.toDataURL
now accepts options object instead linear arguments.fabric.Canvas.toDataURLWithMultiplier
is deprecated; usefabric.Canvas.toDataURL({ multiplier: … })
instead