[svg-edit] r2054 committed - Second attempt to fix bug 904 by asyazwan

0 views
Skip to first unread message

svg-...@googlecode.com

unread,
Feb 22, 2012, 11:15:04 PM2/22/12
to svg-edi...@googlegroups.com
Revision: 2054
Author: codedread
Date: Wed Feb 22 20:13:59 2012
Log: Second attempt to fix bug 904 by asyazwan
http://code.google.com/p/svg-edit/source/detail?r=2054

Modified:
/trunk/editor/svgcanvas.js

=======================================
--- /trunk/editor/svgcanvas.js Wed Feb 22 19:11:28 2012
+++ /trunk/editor/svgcanvas.js Wed Feb 22 20:13:59 2012
@@ -2517,16 +2517,24 @@

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);
+ // TODO: Remove this workaround (all isChromeWindows blocks) once
vendor fixes the issue
+ var isChromeWindows = svgedit.browser.isChrome() &&
svgedit.browser.isWindows();
+ if(isChromeWindows) {
+ var delayedStroke = function(ele) {
+ var _stroke = ele.getAttributeNS(null, 'stroke');
+ ele.removeAttributeNS(null, 'stroke');
+ //Re-apply stroke after delay. Anything higher than 1 seems to
cause flicker
+ setTimeout(function() { ele.setAttributeNS(null, 'stroke',
_stroke) }, 1);
+ }
}
mouse_target.style.vectorEffect = 'non-scaling-stroke';
- var all = mouse_target.getElementsByTagName('*'), len = all.length;
+ if(isChromeWindows) delayedStroke(mouse_target);
+
+ var all = mouse_target.getElementsByTagName('*'),
+ len = all.length;
for(var i = 0; i < len; i++) {
all[i].style.vectorEffect = 'non-scaling-stroke';
+ if(isChromeWindows) delayedStroke(all[i]);
}
}
}

Reply all
Reply to author
Forward
0 new messages