Skip to content

Commit

Permalink
Add back roundRect to fix issue on firefox ESR.
Browse files Browse the repository at this point in the history
  • Loading branch information
comfyanonymous committed Jul 12, 2023
1 parent f4b9390 commit 90aa597
Showing 1 changed file with 76 additions and 0 deletions.
76 changes: 76 additions & 0 deletions web/lib/litegraph.core.js
Original file line number Diff line number Diff line change
Expand Up @@ -13387,6 +13387,82 @@ LGraphNode.prototype.executeAction = function(action)
};

//API *************************************************
//like rect but rounded corners
if (typeof(window) != "undefined" && window.CanvasRenderingContext2D && !window.CanvasRenderingContext2D.prototype.roundRect) {
window.CanvasRenderingContext2D.prototype.roundRect = function(
x,
y,
w,
h,
radius,
radius_low
) {
var top_left_radius = 0;
var top_right_radius = 0;
var bottom_left_radius = 0;
var bottom_right_radius = 0;

if ( radius === 0 )
{
this.rect(x,y,w,h);
return;
}

if(radius_low === undefined)
radius_low = radius;

//make it compatible with official one
if(radius != null && radius.constructor === Array)
{
if(radius.length == 1)
top_left_radius = top_right_radius = bottom_left_radius = bottom_right_radius = radius[0];
else if(radius.length == 2)
{
top_left_radius = bottom_right_radius = radius[0];
top_right_radius = bottom_left_radius = radius[1];
}
else if(radius.length == 4)
{
top_left_radius = radius[0];
top_right_radius = radius[1];
bottom_left_radius = radius[2];
bottom_right_radius = radius[3];
}
else
return;
}
else //old using numbers
{
top_left_radius = radius || 0;
top_right_radius = radius || 0;
bottom_left_radius = radius_low || 0;
bottom_right_radius = radius_low || 0;
}

//top right
this.moveTo(x + top_left_radius, y);
this.lineTo(x + w - top_right_radius, y);
this.quadraticCurveTo(x + w, y, x + w, y + top_right_radius);

//bottom right
this.lineTo(x + w, y + h - bottom_right_radius);
this.quadraticCurveTo(
x + w,
y + h,
x + w - bottom_right_radius,
y + h
);

//bottom left
this.lineTo(x + bottom_right_radius, y + h);
this.quadraticCurveTo(x, y + h, x, y + h - bottom_left_radius);

//top left
this.lineTo(x, y + bottom_left_radius);
this.quadraticCurveTo(x, y, x + top_left_radius, y);
};
}//if

function compareObjects(a, b) {
for (var i in a) {
if (a[i] != b[i]) {
Expand Down

0 comments on commit 90aa597

Please sign in to comment.