You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2018/02/18 11:00:07 UTC
[openmeetings] branch 4.0.x updated: [OPENMEETINGS-1777] fabricjs
and wicketstuff versions are updated
This is an automated email from the ASF dual-hosted git repository.
solomax pushed a commit to branch 4.0.x
in repository https://gitbox.apache.org/repos/asf/openmeetings.git
The following commit(s) were added to refs/heads/4.0.x by this push:
new 0c14b3c [OPENMEETINGS-1777] fabricjs and wicketstuff versions are updated
0c14b3c is described below
commit 0c14b3c6a25335b19f31f9eb5eaeb36e3c373be2
Author: Maxim Solodovnik <so...@gmail.com>
AuthorDate: Sun Feb 18 17:59:53 2018 +0700
[OPENMEETINGS-1777] fabricjs and wicketstuff versions are updated
---
.../org/apache/openmeetings/web/room/wb/fabric.js | 231 +++++++++++++--------
pom.xml | 2 +-
2 files changed, 148 insertions(+), 85 deletions(-)
diff --git a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
index 111bbe4..98dbbd3 100644
--- a/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
+++ b/openmeetings-web/src/main/java/org/apache/openmeetings/web/room/wb/fabric.js
@@ -1,8 +1,8 @@
/* Licensed MIT https://github.com/kangax/fabric.js/blob/master/LICENSE */
/* build: `node build.js modules=ALL exclude=gestures,accessors minifier=uglifyjs` */
- /*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */
+/*! Fabric.js Copyright 2008-2015, Printio (Juriy Zaytsev, Maxim Chernyak) */
-var fabric = fabric || { version: '2.0.0-rc.4' };
+var fabric = fabric || { version: '2.0.1' };
if (typeof exports !== 'undefined') {
exports.fabric = fabric;
}
@@ -5029,7 +5029,7 @@ fabric.ElementsParser.prototype.checkIfDone = function() {
toHexa: function() {
var source = this.getSource(), a;
- a = source[3] * 255;
+ a = Math.round(source[3] * 255);
a = a.toString(16);
a = (a.length === 1) ? ('0' + a) : a;
@@ -5889,7 +5889,7 @@ fabric.ElementsParser.prototype.checkIfDone = function() {
options[prop] = 0;
}
propValue = parseFloat(options[prop], 10);
- if (typeof options[prop] === 'string' && /^\d+%$/.test(options[prop])) {
+ if (typeof options[prop] === 'string' && /^(\d+\.\d+)%|(\d+)%$/.test(options[prop])) {
multFactor = 0.01;
}
else {
@@ -5963,6 +5963,21 @@ fabric.ElementsParser.prototype.checkIfDone = function() {
offsetY: 0,
/**
+ * crossOrigin value (one of "", "anonymous", "use-credentials")
+ * @see https://developer.mozilla.org/en-US/docs/HTML/CORS_settings_attributes
+ * @type String
+ * @default
+ */
+ crossOrigin: '',
+
+ /**
+ * transform matrix to change the pattern, imported from svgs.
+ * @type Array
+ * @default
+ */
+ patternTransform: null,
+
+ /**
* Constructor
* @param {Object} [options] Options object
* @param {Function} [callback] function to invoke after callback init.
@@ -5989,7 +6004,7 @@ fabric.ElementsParser.prototype.checkIfDone = function() {
fabric.util.loadImage(options.source, function(img) {
_this.source = img;
callback && callback(_this);
- });
+ }, null, this.crossOrigin);
}
},
@@ -6019,8 +6034,10 @@ fabric.ElementsParser.prototype.checkIfDone = function() {
type: 'pattern',
source: source,
repeat: this.repeat,
+ crossOrigin: this.crossOrigin,
offsetX: toFixed(this.offsetX, NUM_FRACTION_DIGITS),
offsetY: toFixed(this.offsetY, NUM_FRACTION_DIGITS),
+ patternTransform: this.patternTransform ? this.patternTransform.concat() : null
};
fabric.util.populateWithProperties(this, object, propertiesToInclude);
@@ -8148,6 +8165,17 @@ fabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype
},
/**
+ * Sets the transformation on given context
+ * @param {RenderingContext2d} ctx context to render on
+ * @private
+ */
+ _saveAndTransform: function(ctx) {
+ var v = this.canvas.viewportTransform;
+ ctx.save();
+ ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);
+ },
+
+ /**
* Sets brush shadow styles
* @private
*/
@@ -8279,12 +8307,10 @@ fabric.BaseBrush = fabric.util.createClass(/** @lends fabric.BaseBrush.prototype
*/
_render: function() {
var ctx = this.canvas.contextTop, i, len,
- v = this.canvas.viewportTransform,
p1 = this._points[0],
p2 = this._points[1];
- ctx.save();
- ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);
+ this._saveAndTransform(ctx);
ctx.beginPath();
//if we only have 2 points in the path and they are the same
//it means that the user only clicked the canvas without moving the mouse
@@ -8443,11 +8469,8 @@ fabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric
*/
drawDot: function(pointer) {
var point = this.addPoint(pointer),
- ctx = this.canvas.contextTop,
- v = this.canvas.viewportTransform;
- ctx.save();
- ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);
-
+ ctx = this.canvas.contextTop;
+ this._saveAndTransform(ctx);
ctx.fillStyle = point.fill;
ctx.beginPath();
ctx.arc(point.x, point.y, point.radius, 0, Math.PI * 2, false);
@@ -8468,6 +8491,25 @@ fabric.CircleBrush = fabric.util.createClass(fabric.BaseBrush, /** @lends fabric
},
/**
+ * Render the full state of the brush
+ * @private
+ */
+ _render: function() {
+ var ctx = this.canvas.contextTop, i, len,
+ points = this.points, point;
+ this._saveAndTransform(ctx);
+ for (i = 0, len = points.length; i < len; i++) {
+ point = points[i];
+ ctx.fillStyle = point.fill;
+ ctx.beginPath();
+ ctx.arc(point.x, point.y, point.radius, 0, Math.PI * 2, false);
+ ctx.closePath();
+ ctx.fill();
+ }
+ ctx.restore();
+ },
+
+ /**
* Invoked on mouse move
* @param {Object} pointer
*/
@@ -8603,7 +8645,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric
this._setShadow();
this.addSprayChunk(pointer);
- this.render();
+ this.render(this.sprayChunkPoints);
},
/**
@@ -8612,7 +8654,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric
*/
onMouseMove: function(pointer) {
this.addSprayChunk(pointer);
- this.render();
+ this.render(this.sprayChunkPoints);
},
/**
@@ -8638,8 +8680,6 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric
originY: 'center',
fill: this.color
});
-
- this.shadow && rect.setShadow(this.shadow);
rects.push(rect);
}
}
@@ -8649,8 +8689,7 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric
}
var group = new fabric.Group(rects, { originX: 'center', originY: 'center' });
- group.canvas = this.canvas;
-
+ this.shadow && group.setShadow(this.shadow);
this.canvas.add(group);
this.canvas.fire('path:created', { path: group });
@@ -8684,18 +8723,16 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric
},
/**
- * Renders brush
+ * Render new chunk of spray brush
*/
- render: function() {
- var ctx = this.canvas.contextTop;
+ render: function(sprayChunk) {
+ var ctx = this.canvas.contextTop, i, len;
ctx.fillStyle = this.color;
- var v = this.canvas.viewportTransform, i, len;
- ctx.save();
- ctx.transform(v[0], v[1], v[2], v[3], v[4], v[5]);
+ this._saveAndTransform(ctx);
- for (i = 0, len = this.sprayChunkPoints.length; i < len; i++) {
- var point = this.sprayChunkPoints[i];
+ for (i = 0, len = sprayChunk.length; i < len; i++) {
+ var point = sprayChunk[i];
if (typeof point.opacity !== 'undefined') {
ctx.globalAlpha = point.opacity;
}
@@ -8705,6 +8742,21 @@ fabric.SprayBrush = fabric.util.createClass( fabric.BaseBrush, /** @lends fabric
},
/**
+ * Render all spray chunks
+ */
+ _render: function() {
+ var ctx = this.canvas.contextTop, i, ilen;
+ ctx.fillStyle = this.color;
+
+ this._saveAndTransform(ctx);
+
+ for (i = 0, ilen = this.sprayChunks.length; i < ilen; i++) {
+ this.render(this.sprayChunks[i]);
+ }
+ ctx.restore();
+ },
+
+ /**
* @param {Object} pointer
*/
addSprayChunk: function(pointer) {
@@ -10923,7 +10975,9 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
*/
_onMouseDownInDrawingMode: function(e) {
this._isCurrentlyDrawing = true;
- this.discardActiveObject(e).requestRenderAll();
+ if (this.getActiveObject()) {
+ this.discardActiveObject(e).requestRenderAll();
+ }
if (this.clipTo) {
fabric.util.clipContext(this, this.contextTop);
}
@@ -11544,11 +11598,12 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
* @param {Object} [options] Options object
* @param {String} [options.format=png] The format of the output image. Either "jpeg" or "png"
* @param {Number} [options.quality=1] Quality level (0..1). Only used for jpeg.
- * @param {Number} [options.multiplier=1] Multiplier to scale by
+ * @param {Number} [options.multiplier=1] Multiplier to scale by, to have consistent
* @param {Number} [options.left] Cropping left offset. Introduced in v1.2.14
* @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
* @param {Number} [options.width] Cropping width. Introduced in v1.2.14
* @param {Number} [options.height] Cropping height. Introduced in v1.2.14
+ * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 2.0.0
* @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format
* @see {@link http://jsfiddle.net/fabricjs/NfZVb/|jsFiddle demo}
* @example <caption>Generate jpeg dataURL with lower quality</caption>
@@ -11575,7 +11630,7 @@ fabric.PatternBrush = fabric.util.createClass(fabric.PencilBrush, /** @lends fab
var format = options.format || 'png',
quality = options.quality || 1,
- multiplier = options.multiplier || 1,
+ multiplier = (options.multiplier || 1) * (options.enableRetinaScaling ? 1 : 1 / this.getRetinaScaling()),
cropping = {
left: options.left || 0,
top: options.top || 0,
@@ -13293,7 +13348,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.Stati
* @param {Number} [options.top] Cropping top offset. Introduced in v1.2.14
* @param {Number} [options.width] Cropping width. Introduced in v1.2.14
* @param {Number} [options.height] Cropping height. Introduced in v1.2.14
- * @param {Boolean} [options.enableRetina] Enable retina scaling for clone image. Introduce in 1.6.4
+ * @param {Boolean} [options.enableRetinaScaling] Enable retina scaling for clone image. Introduce in 1.6.4
* @return {String} Returns a data: URL containing a representation of the object in the format specified by options.format
*/
toDataURL: function(options) {
@@ -13305,7 +13360,11 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.Stati
el.width = boundingRect.width;
el.height = boundingRect.height;
fabric.util.wrapElement(el, 'div');
- var canvas = new fabric.StaticCanvas(el, { enableRetinaScaling: options.enableRetinaScaling });
+ var canvas = new fabric.StaticCanvas(el, {
+ enableRetinaScaling: options.enableRetinaScaling,
+ renderOnAddRemove: false,
+ skipOffscreen: false,
+ });
// to avoid common confusion https://github.com/kangax/fabric.js/issues/806
if (options.format === 'jpg') {
options.format = 'jpeg';
@@ -13325,10 +13384,12 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.Stati
var originalCanvas = this.canvas;
canvas.add(this);
var data = canvas.toDataURL(options);
-
this.set(origParams).setCoords();
this.canvas = originalCanvas;
-
+ // canvas.dispose will call image.dispose that will nullify the elements
+ // since this canvas is a simple element for the process, we remove references
+ // to objects in this way in order to avoid object trashing.
+ canvas._objects = [];
canvas.dispose();
canvas = null;
@@ -14186,7 +14247,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.Stati
* Returns coordinates of object's bounding rectangle (left, top, width, height)
* the box is intented as aligned to axis of canvas.
* @param {Boolean} [absolute] use coordinates without viewportTransform
- * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords
+ * @param {Boolean} [calculate] use coordinates of current position instead of .oCoords / .aCoords
* @return {Object} Object with left, top, width, height properties
*/
getBoundingRect: function(absolute, calculate) {
@@ -14373,7 +14434,7 @@ fabric.util.object.extend(fabric.StaticCanvas.prototype, /** @lends fabric.Stati
prefix = this.group.transformMatrixKey(skipGroup) + sep;
};
return prefix + this.top + sep + this.left + sep + this.scaleX + sep + this.scaleY +
- sep + this.skewX + sep + this.skewY + sep + this.angle +
+ sep + this.skewX + sep + this.skewY + sep + this.angle + sep + this.originX + sep + this.originY +
sep + this.width + sep + this.height + sep + this.strokeWidth + this.flipX + this.flipY;
},
@@ -14589,8 +14650,6 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
/* _TO_SVG_START_ */
(function() {
- var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
-
function getSvgColorString(prop, value) {
if (!value) {
return prop + ': none; ';
@@ -14657,7 +14716,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
var term = '; ',
strokeWidth = style.strokeWidth ? 'stroke-width: ' + style.strokeWidth + term : '',
fontFamily = style.fontFamily ? 'font-family: ' + style.fontFamily.replace(/"/g, '\'') + term : '',
- fontSize = style.fontSize ? 'font-size: ' + style.fontSize + term : '',
+ fontSize = style.fontSize ? 'font-size: ' + style.fontSize + 'px' + term : '',
fontStyle = style.fontStyle ? 'font-style: ' + style.fontStyle + term : '',
fontWeight = style.fontWeight ? 'font-weight: ' + style.fontWeight + term : '',
fill = style.fill ? getSvgColorString('fill', style.fill) : '',
@@ -14756,6 +14815,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
_setSVGBg: function(textBgRects) {
if (this.backgroundColor) {
+ var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
textBgRects.push(
'\t\t<rect ',
this._getFillAttributes(this.backgroundColor),
@@ -15895,8 +15955,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
'use strict';
var fabric = global.fabric || (global.fabric = { }),
- pi = Math.PI,
- extend = fabric.util.object.extend;
+ pi = Math.PI;
if (fabric.Circle) {
fabric.warn('fabric.Circle is already defined.');
@@ -16066,13 +16125,11 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
* @static
* @memberOf fabric.Circle
* @param {SVGElement} element Element to parse
- * @param {Object} [options] Options object
* @param {Function} [callback] Options callback invoked after parsing is finished
+ * @param {Object} [options] Options object
* @throws {Error} If value of `r` attribute is missing or invalid
*/
- fabric.Circle.fromElement = function(element, callback, options) {
- options || (options = { });
-
+ fabric.Circle.fromElement = function(element, callback) {
var parsedAttributes = fabric.parseAttributes(element, fabric.Circle.ATTRIBUTE_NAMES);
if (!isValidRadius(parsedAttributes)) {
@@ -16081,7 +16138,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.radius;
parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.radius;
- callback(new fabric.Circle(extend(parsedAttributes, options)));
+ callback(new fabric.Circle(parsedAttributes));
};
/**
@@ -16230,8 +16287,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
'use strict';
var fabric = global.fabric || (global.fabric = { }),
- piBy2 = Math.PI * 2,
- extend = fabric.util.object.extend;
+ piBy2 = Math.PI * 2;
if (fabric.Ellipse) {
fabric.warn('fabric.Ellipse is already defined.');
@@ -16388,18 +16444,16 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
* @static
* @memberOf fabric.Ellipse
* @param {SVGElement} element Element to parse
- * @param {Object} [options] Options object
* @param {Function} [callback] Options callback invoked after parsing is finished
* @return {fabric.Ellipse}
*/
- fabric.Ellipse.fromElement = function(element, callback, options) {
- options || (options = { });
+ fabric.Ellipse.fromElement = function(element, callback) {
var parsedAttributes = fabric.parseAttributes(element, fabric.Ellipse.ATTRIBUTE_NAMES);
parsedAttributes.left = (parsedAttributes.left || 0) - parsedAttributes.rx;
parsedAttributes.top = (parsedAttributes.top || 0) - parsedAttributes.ry;
- callback(new fabric.Ellipse(extend(parsedAttributes, options)));
+ callback(new fabric.Ellipse(parsedAttributes));
};
/* _FROM_SVG_END_ */
@@ -16640,8 +16694,7 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
extend = fabric.util.object.extend,
min = fabric.util.array.min,
max = fabric.util.array.max,
- toFixed = fabric.util.toFixed,
- NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
+ toFixed = fabric.util.toFixed;
if (fabric.Polyline) {
fabric.warn('fabric.Polyline is already defined');
@@ -16757,7 +16810,8 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
*/
toSVG: function(reviver) {
var points = [], diffX = this.pathOffset.x, diffY = this.pathOffset.y,
- markup = this._createBaseSVGMarkup();
+ markup = this._createBaseSVGMarkup(),
+ NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
for (var i = 0, len = this.points.length; i < len; i++) {
points.push(
@@ -19298,7 +19352,8 @@ fabric.util.object.extend(fabric.Object.prototype, /** @lends fabric.Object.prot
* @param {Object} object Object to create an instance from
* @param {Function} callback Callback to invoke when an image instance is created
*/
- fabric.Image.fromObject = function(object, callback) {
+ fabric.Image.fromObject = function(_object, callback) {
+ var object = fabric.util.object.clone(_object);
fabric.util.loadImage(object.src, function(img, error) {
if (error) {
callback && callback(null, error);
@@ -22068,13 +22123,12 @@ fabric.Image.filters.BaseFilter.fromObject = function(object, callback) {
alpha: 1,
vertexSource: 'attribute vec2 aPosition;\n' +
- 'attribute vec2 aTexCoord;\n' +
'varying vec2 vTexCoord;\n' +
'varying vec2 vTexCoord2;\n' +
'uniform mat3 uTransformMatrix;\n' +
'void main() {\n' +
- 'vTexCoord = aTexCoord;\n' +
- 'vTexCoord2 = (uTransformMatrix * vec3(aTexCoord, 1.0)).xy;\n' +
+ 'vTexCoord = aPosition;\n' +
+ 'vTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\n' +
'gl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n' +
'}',
@@ -24350,7 +24404,7 @@ fabric.Image.filters.BaseFilter.fromObject = function(object, callback) {
charBox,
boxWidth = 0,
timeToRender,
- shortCut = !isJustify && this.isEmptyStyles(lineIndex);
+ shortCut = !isJustify && this.charSpacing === 0 && this.isEmptyStyles(lineIndex);
ctx.save();
top -= lineHeight * this._fontSizeFraction / this.lineHeight;
@@ -25993,6 +26047,7 @@ fabric.Image.filters.BaseFilter.fromObject = function(object, callback) {
}
if (this.canvas) {
+ this.canvas.calcOffset();
this.exitEditingOnOthers(this.canvas);
}
@@ -26640,31 +26695,39 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot
},
/**
- * Initializes "mousedown" event handler
+ * Default event handler for the basic functionalities needed on _mouseDown
+ * can be overridden to do something different.
+ * Scope of this implementation is: find the click position, set selectionStart
+ * find selectionEnd, initialize the drawing of either cursor or selection area
*/
- initMousedownHandler: function() {
- this.on('mousedown', function(options) {
- if (!this.editable || (options.e.button && options.e.button !== 1)) {
- return;
- }
- var pointer = this.canvas.getPointer(options.e);
+ _mouseDownHandler: function(options) {
+ if (!this.canvas || !this.editable || (options.e.button && options.e.button !== 1)) {
+ return;
+ }
+ var pointer = this.canvas.getPointer(options.e);
- this.__mousedownX = pointer.x;
- this.__mousedownY = pointer.y;
- this.__isMousedown = true;
+ this.__mousedownX = pointer.x;
+ this.__mousedownY = pointer.y;
+ this.__isMousedown = true;
- if (this.selected) {
- this.setCursorByClick(options.e);
- }
+ if (this.selected) {
+ this.setCursorByClick(options.e);
+ }
- if (this.isEditing) {
- this.__selectionStartOnMouseDown = this.selectionStart;
- if (this.selectionStart === this.selectionEnd) {
- this.abortCursorAnimation();
- }
- this.renderCursorOrSelection();
+ if (this.isEditing) {
+ this.__selectionStartOnMouseDown = this.selectionStart;
+ if (this.selectionStart === this.selectionEnd) {
+ this.abortCursorAnimation();
}
- });
+ this.renderCursorOrSelection();
+ }
+ },
+
+ /**
+ * Initializes "mousedown" event handler
+ */
+ initMousedownHandler: function() {
+ this.on('mousedown', this._mouseDownHandler);
},
/**
@@ -27438,8 +27501,7 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot
/* _TO_SVG_START_ */
(function() {
- var toFixed = fabric.util.toFixed,
- NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
+ var toFixed = fabric.util.toFixed;
fabric.util.object.extend(fabric.Text.prototype, /** @lends fabric.Text.prototype */ {
@@ -27526,7 +27588,8 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot
*/
_createTextCharSpan: function(_char, styleDecl, left, top) {
var styleProps = this.getSvgSpanStyles(styleDecl, _char !== _char.trim()),
- fillStyles = styleProps ? 'style="' + styleProps + '"' : '';
+ fillStyles = styleProps ? 'style="' + styleProps + '"' : '',
+ NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
return [
'<tspan x="', toFixed(left, NUM_FRACTION_DIGITS), '" y="',
@@ -27584,6 +27647,7 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot
},
_pushTextBgRect: function(textBgRects, color, left, top, width, height) {
+ var NUM_FRACTION_DIGITS = fabric.Object.NUM_FRACTION_DIGITS;
textBgRects.push(
'\t\t<rect ',
this._getFillAttributes(color),
@@ -28103,4 +28167,3 @@ fabric.util.object.extend(fabric.IText.prototype, /** @lends fabric.IText.protot
});
})();
-
diff --git a/pom.xml b/pom.xml
index c264533..4981cb3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -60,7 +60,7 @@
<junit.version>4.12</junit.version>
<wicket.version>8.0.0-M9</wicket.version>
<wicketju.version>8.0.0-SNAPSHOT</wicketju.version>
- <wickets.version>8.0.0-SNAPSHOT</wickets.version>
+ <wickets.version>8.0.0-M9</wickets.version>
<red5-server.version>1.0.10-M4</red5-server.version>
<red5-client.version>1.0.10-M4</red5-client.version>
<spring.version>4.3.14.RELEASE</spring.version>
--
To stop receiving notification emails like this one, please contact
solomax@apache.org.