Maybe it works to cancel selection if it starts on a non-selectable element.
> // prevent text selection in IE
> // can't use lz.embed.attachEventHandler because we need to cancel events
> if (LzSprite.prototype.quirks.ie_prevent_selection) {
> document.onselectstart = function () {
> var src = window.event.srcElement;
> if (src.owner instanceof LzTextSprite) {
> if (! src.owner.selectable) {
> // Debug.write("prevent selection on non-selectable text")
> return false;
> }
> } else {
> // Debug.write("prevent selection on non-text")
> return false;
> }
> }
> }
On 6/6/2009 6:27 PM, Henry Minsky wrote:
And one bug in IE:
Also open the component sampler, mouse down and then move cursor
while still holding the mouse button.
Expected: no text selection
Actual: text selection for all text elements
Apparently global onselectstart and ondrag were canceled in
"LzInputTextSprite.js" to avoid this behaviour, cf. [3].
But having that code in LzInputTextSprite:
document.onselectstart = LzTextSprite.prototype.__cancelhandler;
document.ondrag = LzTextSprite.prototype.__cancelhandler;
causes text selection to stop working in globally in IE7, and Safari/OSX.
(Actually, inputtext selection still works in Safari for some reason
with this code, but
regular selectable non-input text cannot be selected )
Do you have any ideas how we can keep text selection working in
IE7/Safari but
not have the unwanted selection of everything?