Skip to content
Permalink
Browse files

Merge branch 'master' into major

  • Loading branch information...
f1ames committed Apr 9, 2019
2 parents 28c97da + 2c264dc commit c6969047a007e10d9bb2907ba11d0f25de1295d9
Showing with 2,158 additions and 1,095 deletions.
  1. +24 −1 CHANGES.md
  2. +9 −4 core/ckeditor.js
  3. +5 −3 core/loader.js
  4. +16 −7 core/scriptloader.js
  5. +15 −7 core/skin.js
  6. +1 −1 lang/de.js
  7. +4 −4 lang/pt.js
  8. +65 −65 lang/sr-latn.js
  9. +68 −68 lang/sr.js
  10. +1 −1 plugins/a11yhelp/dialogs/lang/pt.js
  11. +90 −90 plugins/a11yhelp/dialogs/lang/sr-latn.js
  12. +90 −90 plugins/a11yhelp/dialogs/lang/sr.js
  13. +3 −3 plugins/about/lang/sr-latn.js
  14. +3 −3 plugins/about/lang/sr.js
  15. +5 −1 plugins/autocomplete/plugin.js
  16. +8 −0 plugins/autoembed/lang/sr-latn.js
  17. +8 −0 plugins/autoembed/lang/sr.js
  18. +1 −1 plugins/autoembed/plugin.js
  19. +2 −2 plugins/bidi/lang/sr-latn.js
  20. +2 −2 plugins/bidi/lang/sr.js
  21. +1 −1 plugins/blockquote/lang/sr-latn.js
  22. +1 −1 plugins/blockquote/lang/sr.js
  23. +1 −1 plugins/clipboard/lang/pt.js
  24. +2 −2 plugins/clipboard/lang/sr-latn.js
  25. +2 −2 plugins/clipboard/lang/sr.js
  26. +13 −13 plugins/clipboard/plugin.js
  27. +13 −0 plugins/codesnippet/lang/sr-latn.js
  28. +13 −0 plugins/codesnippet/lang/sr.js
  29. +6 −1 plugins/codesnippet/plugin.js
  30. +63 −63 plugins/colorbutton/lang/sr-latn.js
  31. +63 −63 plugins/colorbutton/lang/sr.js
  32. +5 −5 plugins/colordialog/lang/sr-latn.js
  33. +5 −5 plugins/colordialog/lang/sr.js
  34. +1 −1 plugins/contextmenu/lang/sr-latn.js
  35. +1 −1 plugins/contextmenu/lang/sr.js
  36. +12 −0 plugins/devtools/lang/sr-latn.js
  37. +12 −0 plugins/devtools/lang/sr.js
  38. +1 −1 plugins/devtools/plugin.js
  39. +3 −0 plugins/dialog/plugin.js
  40. +8 −8 plugins/div/lang/sr-latn.js
  41. +13 −13 plugins/div/lang/sr.js
  42. +17 −17 plugins/docprops/lang/sr-latn.js
  43. +17 −17 plugins/docprops/lang/sr.js
  44. +2 −2 plugins/elementspath/lang/sr-latn.js
  45. +2 −2 plugins/elementspath/lang/sr.js
  46. +15 −0 plugins/embedbase/lang/sr-latn.js
  47. +15 −0 plugins/embedbase/lang/sr.js
  48. +1 −1 plugins/embedbase/plugin.js
  49. +4 −4 plugins/fakeobjects/lang/sr-latn.js
  50. +5 −5 plugins/fakeobjects/lang/sr.js
  51. +13 −0 plugins/filetools/lang/sr-latn.js
  52. +13 −0 plugins/filetools/lang/sr.js
  53. +1 −1 plugins/filetools/plugin.js
  54. +4 −4 plugins/find/lang/sr-latn.js
  55. +3 −3 plugins/find/lang/sr.js
  56. +26 −26 plugins/flash/lang/sr-latn.js
  57. +26 −26 plugins/flash/lang/sr.js
  58. +4 −4 plugins/font/lang/sr-latn.js
  59. +4 −4 plugins/font/lang/sr.js
  60. +2 −2 plugins/format/lang/sr-latn.js
  61. +10 −10 plugins/format/lang/sr.js
  62. +20 −20 plugins/forms/lang/sr-latn.js
  63. +20 −20 plugins/forms/lang/sr.js
  64. +5 −5 plugins/iframe/lang/sr-latn.js
  65. +5 −5 plugins/iframe/lang/sr.js
  66. +15 −15 plugins/image/lang/sr-latn.js
  67. +11 −11 plugins/image/lang/sr.js
  68. +12 −12 plugins/image2/lang/sr-latn.js
  69. +11 −11 plugins/image2/lang/sr.js
  70. +11 −4 plugins/image2/plugin.js
  71. +2 −2 plugins/indent/lang/sr-latn.js
  72. +1 −1 plugins/indent/lang/sr.js
  73. +9 −0 plugins/language/lang/sr-latn.js
  74. +9 −0 plugins/language/lang/sr.js
  75. +1 −1 plugins/language/plugin.js
  76. +3 −3 plugins/link/lang/pt.js
  77. +32 −32 plugins/link/lang/sr-latn.js
  78. +36 −36 plugins/link/lang/sr.js
  79. +2 −2 plugins/list/lang/sr-latn.js
  80. +2 −2 plugins/list/lang/sr.js
  81. +14 −14 plugins/liststyle/lang/sr-latn.js
  82. +14 −14 plugins/liststyle/lang/sr.js
  83. +8 −0 plugins/magicline/lang/sr-latn.js
  84. +8 −0 plugins/magicline/lang/sr.js
  85. +2 −2 plugins/magicline/plugin.js
  86. +13 −0 plugins/mathjax/lang/sr-latn.js
  87. +13 −0 plugins/mathjax/lang/sr.js
  88. +1 −1 plugins/mathjax/plugin.js
  89. +2 −2 plugins/maximize/lang/sr-latn.js
  90. +2 −2 plugins/maximize/lang/sr.js
  91. +7 −0 plugins/notification/lang/sr-latn.js
  92. +7 −0 plugins/notification/lang/sr.js
  93. +1 −1 plugins/notification/plugin.js
  94. +2 −2 plugins/pagebreak/lang/sr-latn.js
  95. +2 −2 plugins/pagebreak/lang/sr.js
  96. +2 −2 plugins/pastefromword/lang/sr-latn.js
  97. +2 −2 plugins/pastefromword/lang/sr.js
  98. +3 −3 plugins/pastetext/lang/sr-latn.js
  99. +3 −3 plugins/pastetext/lang/sr.js
  100. +12 −0 plugins/placeholder/lang/sr-latn.js
  101. +12 −0 plugins/placeholder/lang/sr.js
  102. +1 −1 plugins/placeholder/plugin.js
  103. +1 −1 plugins/showblocks/lang/sr-latn.js
  104. +1 −1 plugins/showblocks/lang/sr.js
  105. +3 −3 plugins/smiley/lang/sr-latn.js
  106. +3 −3 plugins/smiley/lang/sr.js
  107. +1 −1 plugins/sourcearea/lang/sr-latn.js
  108. +1 −1 plugins/sourcearea/lang/sr.js
  109. +2 −2 plugins/sourcedialog/lang/sr-latn.js
  110. +2 −2 plugins/sourcedialog/lang/sr.js
  111. +125 −0 plugins/specialchar/dialogs/lang/sr-latn.js
  112. +125 −0 plugins/specialchar/dialogs/lang/sr.js
  113. +1 −1 plugins/specialchar/lang/sr-latn.js
  114. +1 −1 plugins/specialchar/plugin.js
  115. +4 −4 plugins/stylescombo/lang/sr-latn.js
  116. +4 −4 plugins/stylescombo/lang/sr.js
  117. +1 −1 plugins/table/lang/pt.js
  118. +37 −37 plugins/table/lang/sr-latn.js
  119. +37 −37 plugins/table/lang/sr.js
  120. +4 −4 plugins/templates/lang/sr-latn.js
  121. +4 −4 plugins/templates/lang/sr.js
  122. +14 −14 plugins/toolbar/lang/sr-latn.js
  123. +14 −14 plugins/toolbar/lang/sr.js
  124. +1 −1 plugins/uicolor/lang/pt.js
  125. +13 −0 plugins/uicolor/lang/sr-latn.js
  126. +13 −0 plugins/uicolor/lang/sr.js
  127. +1 −1 plugins/uicolor/plugin.js
  128. +2 −2 plugins/undo/lang/sr-latn.js
  129. +2 −2 plugins/undo/lang/sr.js
  130. +12 −0 plugins/uploadwidget/lang/sr-latn.js
  131. +12 −0 plugins/uploadwidget/lang/sr.js
  132. +1 −1 plugins/uploadwidget/plugin.js
  133. +8 −0 plugins/widget/lang/sr-latn.js
  134. +8 −0 plugins/widget/lang/sr.js
  135. +60 −10 plugins/widget/plugin.js
  136. +27 −0 tests/core/editor/currentInstance.js
  137. +41 −0 tests/core/loader.js
  138. +15 −0 tests/core/scriptloader.js
  139. +1 −0 tests/plugins/autocomplete/autocomplete.html
  140. +19 −0 tests/plugins/autocomplete/autocomplete.js
  141. +10 −0 tests/plugins/clipboard/manual/readonlystate.html
  142. +13 −0 tests/plugins/clipboard/manual/readonlystate.md
  143. +38 −1 tests/plugins/clipboard/readonly.js
  144. +20 −4 tests/plugins/codesnippet/highlighter.js
  145. +1 −0 tests/plugins/image2/dialoglistener.html
  146. +29 −0 tests/plugins/image2/dialoglistener.js
  147. +17 −3 tests/plugins/image2/manual/resizerwithreadonly.html
  148. +16 −2 tests/plugins/image2/manual/resizerwithreadonly.md
  149. +54 −34 tests/plugins/image2/resizerwithreadonly.js
  150. +1 −1 tests/plugins/magicline/magicline.js
  151. +19 −0 tests/plugins/magicline/memory.js
  152. +2 −2 tests/plugins/magicline/widgets.js
  153. +52 −1 tests/plugins/widget/contextmenu.js
  154. +15 −0 tests/plugins/widget/manual/contextmenushortcuts.html
  155. +45 −0 tests/plugins/widget/manual/contextmenushortcuts.md
  156. +24 −0 tests/plugins/widget/widgetsintegration.js
@@ -27,12 +27,35 @@ Other Changes:

* [#2741](https://github.com/ckeditor/ckeditor-dev/issues/2721): Replaced deprecated `arguments.callee` calls with named function expressions.

## CKEditor 4.11.5

## CKEditor 4.11.4

Fixed Issues:

* [#1397](https://github.com/ckeditor/ckeditor-dev/issues/1397): Fixed: Using dialog to remove headers from the [table](https://ckeditor.com/cke4/addon/table) with one headers row only throws an error.
* [#589](https://github.com/ckeditor/ckeditor-dev/issues/589): Fixed: The editor causes memory leaks in create and destroy cycles.
* [#1397](https://github.com/ckeditor/ckeditor-dev/issues/1397): Fixed: Using the dialog to remove headers from a [table](https://ckeditor.com/cke4/addon/table) with one header row only throws an error.
* [#1479](https://github.com/ckeditor/ckeditor-dev/issues/1479): Fixed: [Justification](https://ckeditor.com/cke4/addon/justify) for styled content in BR mode is disabled.
* [#2816](https://github.com/ckeditor/ckeditor-dev/issues/2816): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resize handler is visible in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
* [#2874](https://github.com/ckeditor/ckeditor-dev/issues/2874): Fixed: [Enhanced Image](https://ckeditor.com/cke4/addon/image2) resize handler is not created when the editor is initialized in [read-only mode](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html).
* [#2775](https://github.com/ckeditor/ckeditor-dev/issues/2775): Fixed: [Clipboard](https://ckeditor.com/cke4/addon/clipboard) paste buttons have wrong state when [read-only](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_readonly.html) mode is set by the mouse event listener with the [Div Editing Area](https://ckeditor.com/cke4/addon/divarea) plugin.
* [#1901](https://github.com/ckeditor/ckeditor-dev/issues/1901): Fixed: Cannot open the context menu over a [Widget](https://ckeditor.com/cke4/addon/widget) with the <kbd>Shift</kbd>+<kbd>F10</kbd> keyboard shortcut.

Other Changes:

* Updated [WebSpellChecker](https://ckeditor.com/cke4/addon/wsc) (WSC) and [SpellCheckAsYouType](https://ckeditor.com/cke4/addon/scayt) (SCAYT) plugins:
* Language dictionary update: German language was extended with over 600k new words.
* Language dictionary update: Swedish language was extended with over 300k new words.
* Grammar support added for Australian and New Zealand English, Polish, Slovak, Slovenian and Austrian languages.
* Changed wavy red and green lines that underline spelling and grammar errors to straight ones.
* [#55](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/55): Fixed: WSC does not use [`CKEDITOR.getUrl()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getUrl) when referencing style sheets.
* [#166](https://github.com/WebSpellChecker/ckeditor-plugin-scayt/issues/166): Fixed: SCAYT does not use [`CKEDITOR.getUrl()`](https://ckeditor.com/docs/ckeditor4/latest/api/CKEDITOR.html#method-getUrl) when referencing style sheets.
* [#56](https://github.com/WebSpellChecker/ckeditor-plugin-wsc/issues/56): [Chrome] Fixed: SCAYT/WSC throws errors when running inside a Chrome extension.
* Fixed: After removing a dictionary, the words are not underlined and considered as incorrect.
* Fixed: The Slovenian (`sl_SL`) language does not work.
* Fixed: Quotes with code `U+2019` (Right single quotation mark) are considered separators.
* Fixed: Wrong error message formatting when the service ID is invalid.
* Fixed: Absent languages in the Languages tab when using SCAYT with the [Shared Spaces](https://ckeditor.com/cke4/addon/sharedspace) plugin.

## CKEditor 4.11.3

@@ -49,14 +49,19 @@ CKEDITOR.add = function( editor ) {
}
} );

editor.on( 'blur', function() {
editor.on( 'blur', removeInstance );

// Remove currentInstance if it's destroyed (#589).
editor.on( 'destroy', removeInstance );

CKEDITOR.fire( 'instance', null, editor );

function removeInstance() {
if ( CKEDITOR.currentInstance == editor ) {
CKEDITOR.currentInstance = null;
CKEDITOR.fire( 'currentInstance' );
}
} );

CKEDITOR.fire( 'instance', null, editor );
}
};

/**
@@ -13,7 +13,7 @@ if ( typeof CKEDITOR == 'undefined' )

if ( !CKEDITOR.loader ) {
/**
* Load core scripts and their dependencies from _source.
* Load core scripts and their dependencies from `_source`.
*
* @class
* @singleton
@@ -158,6 +158,8 @@ if ( !CKEDITOR.loader ) {
// Some browsers, such as Safari, may call the onLoad function
// immediately. Which will break the loading sequence. (https://dev.ckeditor.com/ticket/3661)
setTimeout( function() {
// Once the script is loaded, remove the listener as this might lead to memory leaks (#589).
script.onload = null;
onScriptLoaded( scriptName );
}, 0 );
};
@@ -167,8 +169,8 @@ if ( !CKEDITOR.loader ) {
},

/**
* Loads a specific script, including its dependencies. This is not a
* synchronous loading, which means that the code to be loaded will
* Loads a specific script, including its dependencies. The loading process
* is not synchronous, which means that the code to be loaded will
* not necessarily be available after this call.
*
* CKEDITOR.loader.load( 'dom/element' );
@@ -20,7 +20,7 @@ CKEDITOR.scriptLoader = ( function() {

return {
/**
* Loads one or more external script checking if not already loaded
* Loads one or more external scripts checking if it has not been loaded
* previously by this function.
*
* CKEDITOR.scriptLoader.load( '/myscript.js' );
@@ -40,9 +40,9 @@ CKEDITOR.scriptLoader = ( function() {
* scripts to be loaded.
* @param {Function} [callback] A function to be called when the script
* is loaded and executed. If a string is passed to `scriptUrl`, a
* boolean parameter is passed to the callback, indicating the
* success of the load. If an array is passed instead, two arrays
* parameters are passed to the callback - the first contains the
* Boolean parameter is passed to the callback, indicating the
* success of the load. If an array is passed instead, two array
* parameters are passed to the callback: the first contains the
* URLs that have been properly loaded and the second the failed ones.
* @param {Object} [scope] The scope (`this` reference) to be used for
* the callback call. Defaults to {@link CKEDITOR}.
@@ -130,13 +130,15 @@ CKEDITOR.scriptLoader = ( function() {
} else {
script.$.onload = function() {
// Some browsers, such as Safari, may call the onLoad function
// immediately. Which will break the loading sequence. (https://dev.ckeditor.com/ticket/3661)
// immediately. This will break the loading sequence. (https://dev.ckeditor.com/ticket/3661)
setTimeout( function() {
removeListeners( script );
onLoad( url, true );
}, 0 );
};

script.$.onerror = function() {
removeListeners( script );
onLoad( url, false );
};
}
@@ -146,21 +148,28 @@ CKEDITOR.scriptLoader = ( function() {
script.appendTo( CKEDITOR.document.getHead() );

CKEDITOR.fire( 'download', url ); // %REMOVE_LINE%

};

showBusy && CKEDITOR.document.getDocumentElement().setStyle( 'cursor', 'wait' );
for ( var i = 0; i < scriptCount; i++ ) {
loadScript( scriptUrl[ i ] );
}

function removeListeners( script ) {
// Once the script loaded or failed to load, remove listeners as this might lead to memory leaks (#589).
script.$.onload = null;
script.$.onerror = null;
}
},

/**
* Loads a script in a queue, so only one is loaded at the same time.
*
* @since 4.1.2
* @param {String} scriptUrl URL pointing to the script to be loaded.
* @param {String} scriptUrl The URL pointing to the script to be loaded.
* @param {Function} [callback] A function to be called when the script
* is loaded and executed. A boolean parameter is passed to the callback,
* is loaded and executed. A Boolean parameter is passed to the callback,
* indicating the success of the load.
*
* @see CKEDITOR.scriptLoader#load
@@ -269,24 +269,32 @@

CKEDITOR.on( 'instanceLoaded', function( evt ) {
// The chameleon feature is not for IE quirks.
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks )
if ( CKEDITOR.env.ie && CKEDITOR.env.quirks ) {
return;
}

var editor = evt.editor,
showCallback = function( event ) {
var panel = event.data[ 0 ] || event.data;
var iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();
var panel = event.data[ 0 ] || event.data,
iframe = panel.element.getElementsByTag( 'iframe' ).getItem( 0 ).getFrameDocument();

// Add stylesheet if missing.
// Add the stylesheet if missing.
if ( !iframe.getById( 'cke_ui_color' ) ) {
var node = getStylesheet( iframe );
uiColorMenus.push( node );

// Cleanup after destroying the editor (#589).
editor.on( 'destroy', function() {
uiColorMenus = CKEDITOR.tools.array.filter( uiColorMenus, function( storedNode ) {
return node !== storedNode;
} );
} );

var color = editor.getUiColor();
// Set uiColor for new panel.
if ( color )
// Set uiColor for the new panel.
if ( color ) {
updateStylesheets( [ node ], CKEDITOR.skin.chameleon( editor, 'panel' ), [ [ uiColorRegexp, color ] ] );

}
}
};

@@ -142,6 +142,6 @@ CKEDITOR.lang[ 'de' ] = {
// Prepended to ARIA labels with shortcuts.
keyboardShortcut: 'Tastaturkürzel',

optionDefault: 'Default' // MISSING
optionDefault: 'Standard'
}
};
@@ -84,9 +84,9 @@ CKEDITOR.lang[ 'pt' ] = {
justify: 'Justificado',
alignLeft: 'Alinhar à esquerda',
alignRight: 'Alinhar à direita',
alignCenter: 'Align Center', // MISSING
alignCenter: 'Centrado',
alignTop: 'Topo',
alignMiddle: 'Centro',
alignMiddle: 'Meio',
alignBottom: 'Base',
alignNone: 'Nenhum',
invalidValue: 'Valor inválido.',
@@ -96,7 +96,7 @@ CKEDITOR.lang[ 'pt' ] = {
invalidCssLength: 'O valor especificado para o campo "1%" deve ser um número positivo, com ou sem uma unidade de medida CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
invalidHtmlLength: 'O valor especificado para o campo "1%" deve ser um número positivo, com ou sem uma unidade de medida HTML válida (px ou %).',
invalidInlineStyle: 'O valor especificado para o estilo em linha deve constituir um ou mais conjuntos de valores com o formato de "nome : valor", separados por ponto e vírgula.',
cssLengthTooltip: 'Insira um número para um valor em pontos ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',
cssLengthTooltip: 'Insira um número para um valor em píxeis ou um número com uma unidade CSS válida (px, %, in, cm, mm, em, ex, pt, ou pc).',

// Put the voice-only part of the label in the span.
unavailable: '%1<span class="cke_accessibility">, indisponível</span>',
@@ -142,6 +142,6 @@ CKEDITOR.lang[ 'pt' ] = {
// Prepended to ARIA labels with shortcuts.
keyboardShortcut: 'Keyboard shortcut', // MISSING

optionDefault: 'Default' // MISSING
optionDefault: 'Padrão'
}
};
Oops, something went wrong.

0 comments on commit c696904

Please sign in to comment.
You can’t perform that action at this time.