-- overwriting
function _G.EDITTOOL:key(code, modifiers, text)
+ -- The parameters of the key() function have changed in version
+ -- 7.1.7. Thus, we potentially have to remap the parameters.
+ if text == nil then
+ text = code
+ end
self:graph_backup_key(code, modifiers, text)
if deactivateGraphMode then return end
-- react if and only if we are currently editing a mark and key ESC
-- or SPACE is pressed
- if text ~= "\027" and code ~= 0x20 then return end
- if not editing then return end
+ -- if text ~= "\027" and code ~= 0x20 then return end
+ if text ~= "\027" and text ~= " " then return end
+ if not editing then return end
+
editing = false
-- finding new and old position
function moveEndpoints(oldPos, newPos, p, model)
-- print(model.vno)
for i, obj, sel, layer in p:objects() do
+ -- do nothing if the object is invisible and invisible objects
+ -- should not be moved
if not p:visible(model.vno, layer) and
not moveInvisibleObjects then
goto continue
end
- if obj:type() == "path" then
- local shape = obj:shape()
- for _, subPath in ipairs(shape) do
- if (subPath["type"] == "curve") then
- for _,seg in ipairs(subPath) do
- if (seg["type"] == "segment") then
- for j, point in ipairs(seg) do
- -- print(j, point, oldPos)
- if (obj:matrix() * point - oldPos):sqLen() < sqEps then
- seg[j] = obj:matrix():inverse() * newPos
- -- print("test", seg[j])
- end
- end
- elseif (seg["type"] == "spline") then
- if (obj:matrix() * seg[1] - oldPos):sqLen() < sqEps then
- seg[1] = obj:matrix():inverse() * newPos
- end
- if (obj:matrix() * seg[#seg] - oldPos):sqLen() < sqEps then
- seg[#seg] = obj:matrix():inverse() * newPos
- end
+ -- do nothing if it is not a path
+ if obj:type() ~= "path" then
+ goto continue
+ end
+ local shape = obj:shape()
+ for _, subPath in ipairs(shape) do
+ if (subPath["type"] == "curve") then
+ for _,seg in ipairs(subPath) do
+ if (seg["type"] == "segment") then
+ for j, point in ipairs(seg) do
+ -- print(j, point, oldPos)
+ if (obj:matrix() * point - oldPos):sqLen() < sqEps then
+ seg[j] = obj:matrix():inverse() * newPos
+ -- print("test", seg[j])
+ end
+ end
+ elseif (seg["type"] == "spline") then
+ if (obj:matrix() * seg[1] - oldPos):sqLen() < sqEps then
+ seg[1] = obj:matrix():inverse() * newPos
+ end
+ if (obj:matrix() * seg[#seg] - oldPos):sqLen() < sqEps then
+ seg[#seg] = obj:matrix():inverse() * newPos
end
end
end
- obj:setShape(shape)
end
+ obj:setShape(shape)
end
::continue::
end