Comments (10)
Hi @Jonnas123 what do you mean by zoom the text?
from fabric.js.
I mean use mouse wheel to zoom in.
from fabric.js.
Yes there is a simple bug.
if (
this.paintFirst === 'stroke' &&
this.hasFill() &&
this.hasStroke() &&
typeof this.shadow === 'object'
) {
return true;
}
we are running this condition to determine if the object needs the cache forced on.
Somehow since some change, this.shadow is an object even if we are not setting it.
This is probably an easy fix ( i didn't look at it ).
If you look at it is also possible you can open a PR to fix it.
from fabric.js.
https://github.com/fabricjs/fabric.js/blob/master/src/shapes/Object/defaultValues.ts#L79
Here the shadow is set as 'null' as a default.
I sincerly do not remember why we have the shadow property typed as Shadow | null
, it could just be ?: Shadow
and then fix the code to actually work with this change.
A simpler and more direct fix is to update that condition to say:
this.paintFirst === 'stroke' &&
this.hasFill() &&
this.hasStroke() &&
this.shadow !== null
Probably less involved
Would require adding a jest test anyway in both cases
from fabric.js.
Could you give a hint on where to place the codes? I 've tied both codes inside and outside the zoom function but not working.
from fabric.js.
start using codesandbox for repro
https://codesandbox.io/p/sandbox/fabric-vanillajs-sandbox-forked-y3kryw?file=%2Fsrc%2Findex.ts%3A14%2C24
from fabric.js.
Could you give a hint on where to place the codes? I 've tied both codes inside and outside the zoom function but not working.
if you do a full search for this.paintFirst === 'stroke'
you shouldn't get more than one or two results.
One of those results is 'needsItsOwnCache' that is the one you need to fix.
Even better, if you just look for typeof this.shadow === 'object'
you find the exact bug and code.
from fabric.js.
@asturur Do you have a recommendation for testing? This looks like a visual test (i.e., pixelmatch to see if the blur occurs) but I'm not sure that there's an example for jest. Is something like this needed?
https://github.com/americanexpress/jest-image-snapshot
Or did you have a simpler idea?
from fabric.js.
We use playwright for that.
Look at https://github.com/fabricjs/fabric.js/tree/master/e2e/tests/template-with-node
from fabric.js.
I don't think a visual test is a good idea.
For a visual test is hard to determine if something is blurry or not.
We just need to test the output of 'needsItsOwnCache' function for a text object with different combination of properties.
The bug is not being blurry, that is not a bug itself, the bug is that it force cache on, against your request without a valid reason.
from fabric.js.
Related Issues (20)
- [Feature]: i want to create a drawing tool which work like the attached video HOT 2
- [Bug]: [Group Flip] Scaling Flip Group then Scaling Flip its child object, the child object behavior is wrong HOT 4
- [Feature Request]: Gradient not apply to underline,overline and linethrough on Text. HOT 4
- [Bug]: shadow appears on the upper side, and the underline displays on the backside of a Textbox when objectcaching is false
- is there any way select an transparent polygon or a fabric object with out using the perPixelTargetFind ?
- i cant select a fabric object when its color is transparent with out use perPixelTargetFind , i cant use perPixelTargetFind in my project because of the so many polygon objects aligned closely so i cant use that , is there any other way to select the transparent object ?
- [Bug]: My canvas like a drawing page here im facing an issue that i draw a polyline in down and them i want show the preview of the line when mouse move and the preview showing fine but when i zoom with mouse wheel the preview getting disappear , then mouse wheel down the canvas zoom back to default state the preview showing fine only when the canvas zoom is greater than default state the polyline preview getting disappearing , i cant solve the issue please give me any solution for that
- [Bug]: Main website SSL issue HOT 3
- [Bug]: Abort signal not propagated from loadFromJSON() to objects in Group HOT 2
- [Bug]: can not use fabricjs with web-worker HOT 7
- he controlls point is not valid, i can`t scale the size by the controlls points HOT 2
- When I apply filters on canvas Image it reduce the image width HOT 3
- [Bug]: `Group.prototype.getObjectsBoundingBox` is no longer available in version v6 rc1
- [Bug]: Textbox does not wrap word when their is no space in words. HOT 1
- [Feature]: Interaction Based on Visual Layering Order HOT 1
- [Feature]: Undo Redo for EraserBrush HOT 1
- [Bug]: hidden textarea make parent overflow hidden div scroll when editing
- CharSpacing not working with textbox object.
- [Bug]: Overwrite fabric.util.createClass for Textbox not working in latest version
- [Bug]: CanvasEvents["object:modified"] type has incorrect properties
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fabric.js.