[svg-edit] r2053 committed - Fix bug 904: Chrome Windows crashing

2 views
Skip to first unread message

svg-...@googlecode.com

unread,
Feb 22, 2012, 10:12:27 PM2/22/12
to svg-edi...@googlegroups.com
Revision: 2053
Author: codedread
Date: Wed Feb 22 19:11:28 2012
Log: Fix bug 904: Chrome Windows crashing
http://code.google.com/p/svg-edit/source/detail?r=2053

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';
}
}

Reply all
Reply to author
Forward
0 new messages