From 0b7c8d489a342bdf7346765aa990655ce699dd56 Mon Sep 17 00:00:00 2001 From: Alexis Deveria Date: Wed, 23 Feb 2011 19:45:02 +0000 Subject: [PATCH] Made IE text bug be detected through supportsGoodTextCharPos rather than browser sniffing git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2002 eee81c28-f429-11dd-99c0-75d572ba1ddd --- editor/browser.js | 26 +++++++++++++------------- editor/svgcanvas.js | 32 ++------------------------------ 2 files changed, 15 insertions(+), 43 deletions(-) diff --git a/editor/browser.js b/editor/browser.js index ffcc916b..960ef953 100644 --- a/editor/browser.js +++ b/editor/browser.js @@ -69,20 +69,20 @@ var supportsPathInsertItemBefore_ = (function() { return false; })(); -// text character positioning -var supportsTextCharPos_ = (function() { +// text character positioning (for IE9) +var supportsGoodTextCharPos_ = (function() { var retValue = false; + var svgroot = document.createElementNS(svgns, 'svg'); var svgcontent = document.createElementNS(svgns, 'svg'); - document.documentElement.appendChild(svgcontent); - try { - var text = document.createElementNS(svgns,'text'); - text.textContent = 'a'; - svgcontent.appendChild(text); - text.getStartPositionOfChar(0); - retValue = true; - } catch(err) {} - document.documentElement.removeChild(svgcontent); - return retValue; + document.documentElement.appendChild(svgroot); + svgcontent.setAttribute('x', 5); + svgroot.appendChild(svgcontent); + var text = document.createElementNS(svgns,'text'); + text.textContent = 'a'; + svgcontent.appendChild(text); + var pos = text.getStartPositionOfChar(0).x; + document.documentElement.removeChild(svgroot); + return (pos === 0); })(); var supportsPathBBox_ = (function() { @@ -161,7 +161,7 @@ svgedit.browser.supportsPathReplaceItem = function() { return supportsPathReplac svgedit.browser.supportsPathInsertItemBefore = function() { return supportsPathInsertItemBefore_; } svgedit.browser.supportsPathBBox = function() { return supportsPathBBox_; } svgedit.browser.supportsHVLineContainerBBox = function() { return supportsHVLineContainerBBox_; } -svgedit.browser.supportsTextCharPos = function() { return supportsTextCharPos_; } +svgedit.browser.supportsGoodTextCharPos = function() { return supportsGoodTextCharPos_; } svgedit.browser.supportsEditableText = function() { return supportsEditableText_; } svgedit.browser.supportsGoodDecimals = function() { return supportsGoodDecimals_; } svgedit.browser.supportsNonScalingStroke = function() { return supportsNonScalingStroke_; } diff --git a/editor/svgcanvas.js b/editor/svgcanvas.js index 6d83ddec..54d316de 100644 --- a/editor/svgcanvas.js +++ b/editor/svgcanvas.js @@ -3862,8 +3862,8 @@ var textActions = canvas.textActions = function() { for(var i=0; i