diff --git a/program/js/app.js b/program/js/app.js index 75ad1f12b..36d14c1fb 100644 --- a/program/js/app.js +++ b/program/js/app.js @@ -4938,21 +4938,19 @@ function rcube_webmail() this.toggle_editor = function(props, obj, e) { // @todo: this should work also with many editors on page - var result = this.editor.toggle(props.html, props.noconvert || false); + var result = this.editor.toggle(props.html, props.noconvert || false), + control = $('#' + this.editor.id).data('control') || $(e ? e.target : []); // satisfy the expectations of aftertoggle-editor event subscribers - props.mode = props.html ? 'html' : 'plain'; + props.mode = props.html && result ? 'html' : 'plain'; - if (!result && e) { - // fix selector value if operation failed - props.mode = props.html ? 'plain' : 'html'; - $(e.target).filter('select').val(props.mode); - } + // update internal format flag + $("[name='_is_html']").val(props.mode == 'html' ? 1 : 0); - if (result) { - // update internal format flag - $("[name='_is_html']").val(props.html ? 1 : 0); - } + if (control.is('[type=checkbox]')) + control.prop('checked', props.mode == 'html'); + else + control.val(props.mode); return result; }; diff --git a/skins/elastic/ui.js b/skins/elastic/ui.js index 6a5534e79..a31632e98 100644 --- a/skins/elastic/ui.js +++ b/skins/elastic/ui.js @@ -3655,7 +3655,7 @@ function rcube_elastic_ui() parent.addClass('html-editor'); - editor.after(toolbar) + editor.after(toolbar).data('control', sw) .on('keydown', function(e) { // ALT + F10 is the way to access toolbar in TinyMCE, let's do the same for plain editor if (e.altKey && e.which == 121) {