Modified:
/trunk/editor/browser.js
/trunk/editor/svgcanvas.js
=======================================
--- /trunk/editor/browser.js Wed Feb 23 11:45:02 2011
+++ /trunk/editor/browser.js Wed Feb 22 19:11:28 2012
@@ -35,6 +35,8 @@
var isWebkit_ = userAgent.indexOf("AppleWebKit") >= 0;
var isGecko_ = userAgent.indexOf('Gecko/') >= 0;
var isIE_ = userAgent.indexOf('MSIE') >= 0;
+var isChrome_ = userAgent.indexOf('Chrome/') >= 0;
+var isWindows_ = userAgent.indexOf('Windows') >= 0;
var supportsSelectors_ = (function() {
return !!svg.querySelector;
@@ -153,6 +155,8 @@
svgedit.browser.isWebkit = function() { return isWebkit_; }
svgedit.browser.isGecko = function() { return isGecko_; }
svgedit.browser.isIE = function() { return isIE_; }
+svgedit.browser.isChrome = function() { return isChrome_; }
+svgedit.browser.isWindows = function() { return isWindows_; }
svgedit.browser.supportsSelectors = function() { return
supportsSelectors_; }
svgedit.browser.supportsXpath = function() { return supportsXpath_; }
=======================================
--- /trunk/editor/svgcanvas.js Fri Sep 30 21:41:14 2011
+++ /trunk/editor/svgcanvas.js Wed Feb 22 19:11:28 2012
@@ -2516,9 +2516,16 @@
tlist.appendItem(svgroot.createSVGTransform());
if(svgedit.browser.supportsNonScalingStroke()) {
+ //Handle crash for newer Chrome + Windows:
https://code.google.com/p/svg-edit/issues/detail?id=904
+ if(svgedit.browser.isChrome() && svgedit.browser.isWindows()) {
+ var _stroke = mouse_target.getAttributeNS(null, 'stroke');
+ mouse_target.removeAttributeNS(null, 'stroke');
+ //Re-apply stroke after delay. Anything higher than 1 seems to
cause flicker
+ setTimeout(function() { mouse_target.setAttributeNS(null, 'stroke',
_stroke) }, 1);
+ }
mouse_target.style.vectorEffect = 'non-scaling-stroke';
var all = mouse_target.getElementsByTagName('*'), len = all.length;
- for(var i = 0; i < all.length; i++) {
+ for(var i = 0; i < len; i++) {
all[i].style.vectorEffect = 'non-scaling-stroke';
}
}