From 8e9e8fc8038b147dd65e86f5e5eb36b9ed6af440 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Fri, 29 Aug 2008 02:49:43 +0000 Subject: [PATCH] Monotone-Parent: b3b6f425c01979bb9afdf39c7034dfd2131f4dd3 Monotone-Revision: 24c2f8206b434e2894e6aa447358893a06cc7dc7 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2008-08-29T02:49:43 Monotone-Branch: ca.inverse.sogo --- UI/WebServerResources/HTMLElement.js | 3 ++- UI/WebServerResources/UIxMailEditor.js | 15 +++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/UI/WebServerResources/HTMLElement.js b/UI/WebServerResources/HTMLElement.js index cf415acf0..8781cf3fc 100644 --- a/UI/WebServerResources/HTMLElement.js +++ b/UI/WebServerResources/HTMLElement.js @@ -205,7 +205,8 @@ Element.addMethods( setCaretTo: function(element, pos) { element = $(element); - if (element.selectionStart) { // For Mozilla and Safari + if (typeof(element.selectionStart) + != "undefined") { // For Mozilla and Safari element.focus(); element.setSelectionRange(pos, pos); } diff --git a/UI/WebServerResources/UIxMailEditor.js b/UI/WebServerResources/UIxMailEditor.js index 7126629ef..63ae37732 100644 --- a/UI/WebServerResources/UIxMailEditor.js +++ b/UI/WebServerResources/UIxMailEditor.js @@ -283,10 +283,17 @@ function onTextKeyDown(event) { } else { if (!(event.shiftKey || event.metaKey || event.ctrlKey)) { - if (this.selectionStart) { // FF - var startText = this.value.substr(0, this.selectionStart); - var endText = this.value.substr(this.selectionStart); - this.value = startText + " " + endText; + if (typeof(this.selectionStart) + != "undefined") { // For Mozilla and Safari + var cursor = this.selectionStart; + var startText = ((cursor > 0) + ? this.value.substr(0, cursor) + : ""); + var endText = this.value.substr(cursor); + var newText = startText + " " + endText; + this.value = newText; + cursor += 3; + this.setSelectionRange(cursor, cursor); } else if (this.selectionRange) // IE this.selectionRange.text = " ";