Revert "Revert "Preserve textarea state when building WikiEditor UI""

Ib97f47ef1d66420682bd429c9c12e66c3392e77d Didn't cause
problems so this is now safe to reapply (to wmf2).

This reverts commit 908e7cc56c.

Change-Id: I510536959b58ff0adacd7908f6150c95bfdb3ec1
This commit is contained in:
Mwalker 2014-04-29 22:43:32 +00:00
parent 908e7cc56c
commit b5696dc435

View file

@ -486,6 +486,9 @@ if ( !context || typeof context === 'undefined' ) {
.append( $( '<span>' + mediaWiki.msg( 'wikieditor-loading' ) + '</span>' ) .append( $( '<span>' + mediaWiki.msg( 'wikieditor-loading' ) + '</span>' )
.css( 'marginTop', context.$textarea.height() / 2 ) ); .css( 'marginTop', context.$textarea.height() / 2 ) );
*/ */
/* Preserving cursor and focus state, which will get lost due to wrapAll */
var hasFocus = context.$textarea.is( ':focus' ),
cursorPos = context.$textarea.textSelection( 'getCaretPosition', { startAndEnd: true } );
// Encapsulate the textarea with some containers for layout // Encapsulate the textarea with some containers for layout
context.$textarea context.$textarea
/* Disabling our loading div for now /* Disabling our loading div for now
@ -497,6 +500,14 @@ if ( !context || typeof context === 'undefined' ) {
.wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-left' ) ) .wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-left' ) )
.wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-bottom' ) ) .wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-bottom' ) )
.wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-text' ) ); .wrapAll( $( '<div>' ).addClass( 'wikiEditor-ui-text' ) );
// Restore scroll position after this wrapAll (tracked by mediawiki.action.edit)
context.$textarea.prop( 'scrollTop', $( '#wpScrolltop' ).val() );
// Restore focus and cursor if needed
if ( hasFocus ) {
context.$textarea.focus();
context.$textarea.textSelection( 'setSelection', { start: cursorPos[0], end: cursorPos[1] } );
}
// Get references to some of the newly created containers // Get references to some of the newly created containers
context.$ui = context.$textarea.parent().parent().parent().parent().parent(); context.$ui = context.$textarea.parent().parent().parent().parent().parent();
context.$wikitext = context.$textarea.parent().parent().parent().parent(); context.$wikitext = context.$textarea.parent().parent().parent().parent();