http://www.mediawiki.org/wiki/Special:Code/MediaWiki/54467

Revision: 54467
Author:   tparscal
Date:     2009-08-05 18:10:08 +0000 (Wed, 05 Aug 2009)

Log Message:
-----------
Fixed IE regression - .focus() is available in jquery objects always, but on 
dom objects only in some browsers.

Modified Paths:
--------------
    trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js
    trunk/extensions/UsabilityInitiative/js/plugins.combined.js
    trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js

Modified: 
trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js
===================================================================
--- trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js     
2009-08-05 18:01:30 UTC (rev 54466)
+++ trunk/extensions/UsabilityInitiative/js/plugins/jquery.textSelection.js     
2009-08-05 18:10:08 UTC (rev 54467)
@@ -30,14 +30,14 @@
     var e = this.jquery ? this[0] : this;
        var selText;
        var isSample = false;
-       if ( document.selection  && document.selection.createRange ) {
+       if ( document.selection && document.selection.createRange ) {
                // IE/Opera
                if ( document.documentElement && 
document.documentElement.scrollTop ) {
                        var winScroll = document.documentElement.scrollTop;
                } else if ( document.body ) {
                        var winScroll = document.body.scrollTop;
                }
-               e.focus();
+               $(this).focus();
                var range = document.selection.createRange();
                selText = range.text;
                checkSelectedText();
@@ -58,7 +58,7 @@
        } else if ( e.selectionStart || e.selectionStart == '0' ) {
                // Mozilla
                var textScroll = e.scrollTop;
-               e.focus();
+               $(this).focus();
                var startPos = e.selectionStart;
                var endPos = e.selectionEnd;
                selText = e.value.substring( startPos, endPos );

Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.js
===================================================================
--- trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2009-08-05 
18:01:30 UTC (rev 54466)
+++ trunk/extensions/UsabilityInitiative/js/plugins.combined.js 2009-08-05 
18:10:08 UTC (rev 54467)
@@ -287,14 +287,14 @@
     var e = this.jquery ? this[0] : this;
        var selText;
        var isSample = false;
-       if ( document.selection  && document.selection.createRange ) {
+       if ( document.selection && document.selection.createRange ) {
                // IE/Opera
                if ( document.documentElement && 
document.documentElement.scrollTop ) {
                        var winScroll = document.documentElement.scrollTop;
                } else if ( document.body ) {
                        var winScroll = document.body.scrollTop;
                }
-               e.focus();
+               $(this).focus();
                var range = document.selection.createRange();
                selText = range.text;
                checkSelectedText();
@@ -315,7 +315,7 @@
        } else if ( e.selectionStart || e.selectionStart == '0' ) {
                // Mozilla
                var textScroll = e.scrollTop;
-               e.focus();
+               $(this).focus();
                var startPos = e.selectionStart;
                var endPos = e.selectionEnd;
                selText = e.value.substring( startPos, endPos );

Modified: trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js
===================================================================
--- trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js     
2009-08-05 18:01:30 UTC (rev 54466)
+++ trunk/extensions/UsabilityInitiative/js/plugins.combined.min.js     
2009-08-05 18:10:08 UTC (rev 54467)
@@ -20,9 +20,9 @@
 var path=options.path?'; path='+(options.path):'';var domain=options.domain?'; 
domain='+(options.domain):'';var secure=options.secure?'; 
secure':'';document.cookie=[name,'=',encodeURIComponent(value),expires,path,domain,secure].join('');}else{var
 cookieValue=null;if(document.cookie&&document.cookie!=''){var 
cookies=document.cookie.split(';');for(var i=0;i<cookies.length;i++){var 
cookie=jQuery.trim(cookies[i]);if(cookie.substring(0,name.length+1)==(name+'=')){cookieValue=decodeURIComponent(cookie.substring(name.length+1));break;}}}
 return 
cookieValue;}};(function($){$.fn.extend({encapsulateSelection:function(pre,peri,post){function
 checkSelectedText(){if(!selText){selText=peri;isSample=true;}else 
if(selText.charAt(selText.length-1)==' 
'){selText=selText.substring(0,selText.length-1);post+=' '}}
 var e=this.jquery?this[0]:this;var selText;var 
isSample=false;if(document.selection&&document.selection.createRange){if(document.documentElement&&document.documentElement.scrollTop){var
 winScroll=document.documentElement.scrollTop;}else if(document.body){var 
winScroll=document.body.scrollTop;}
-e.focus();var 
range=document.selection.createRange();selText=range.text;checkSelectedText();range.text=pre+selText+post;if(isSample&&range.moveStart){if(window.opera){post=post.replace(/\n/g,'');}
+$(this).focus();var 
range=document.selection.createRange();selText=range.text;checkSelectedText();range.text=pre+selText+post;if(isSample&&range.moveStart){if(window.opera){post=post.replace(/\n/g,'');}
 
range.moveStart('character',-post.length-selText.length);range.moveEnd('character',-post.length);}
-range.select();if(document.documentElement&&document.documentElement.scrollTop){document.documentElement.scrollTop=winScroll}else
 if(document.body){document.body.scrollTop=winScroll;}}else 
if(e.selectionStart||e.selectionStart=='0'){var 
textScroll=e.scrollTop;e.focus();var startPos=e.selectionStart;var 
endPos=e.selectionEnd;selText=e.value.substring(startPos,endPos);checkSelectedText();e.value=e.value.substring(0,startPos)+pre+selText+post+
+range.select();if(document.documentElement&&document.documentElement.scrollTop){document.documentElement.scrollTop=winScroll}else
 if(document.body){document.body.scrollTop=winScroll;}}else 
if(e.selectionStart||e.selectionStart=='0'){var 
textScroll=e.scrollTop;$(this).focus();var startPos=e.selectionStart;var 
endPos=e.selectionEnd;selText=e.value.substring(startPos,endPos);checkSelectedText();e.value=e.value.substring(0,startPos)+pre+selText+post+
 
e.value.substring(endPos,e.value.length);if(isSample){e.selectionStart=startPos+pre.length;e.selectionEnd=startPos+pre.length+selText.length;}else{e.selectionStart=startPos+pre.length+selText.length+post.length;e.selectionEnd=e.selectionStart;}
 e.scrollTop=textScroll;}
 $(this).trigger('encapsulateSelection');},getCaretPosition:function(){function 
getCaret(e){var caretPos=0;if($.browser.msie){var postFinished=false;var 
periFinished=false;var postFinished=false;var preText,rawPreText,periText;var 
rawPeriText,postText,rawPostText;var 
periRange=document.selection.createRange().duplicate();var 
preRange=document.body.createTextRange();preRange.moveToElementText(e);preRange.setEndPoint("EndToStart",periRange);var
 
postRange=document.body.createTextRange();postRange.moveToElementText(e);postRange.setEndPoint("StartToEnd",periRange);preText=rawPreText=preRange.text;periText=rawPeriText=periRange.text;postText=rawPostText=postRange.text;do{if(!postFinished){if(preRange.compareEndPoints("StartToEnd",preRange)==0){postFinished=true;}else{preRange.moveEnd("character",-1)



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to