Elastic: Fix text selection with Shift+PageUp and Shift+PageDown in plain text editor when using Chrome (#7230)

pull/7242/head
Aleksander Machniak 5 years ago
parent e58c6547ca
commit 38d6659384

@ -15,6 +15,7 @@ CHANGELOG Roundcube Webmail
- Fix so messages in threads with no root aren't displayed separately (#4999)
- Fix bug where attachments with Content-Id were attached to the message on reply (#7122)
- Fix identity selection on reply when both sender and recipient addresses are included in identities (#7211)
- Elastic: Fix text selection with Shift+PageUp and Shift+PageDown in plain text editor when using Chrome (#7230)
RELEASE 1.4.3
-------------

@ -331,7 +331,7 @@ function rcube_text_editor(config, id)
if (is_sig)
data = data.replace(sig_mark, "\n" + signature.text);
input.val(data).focus();
input.val(data).focus().trigger('input');
rcmail.set_caret_pos(input.get(0), 0);
};

@ -898,6 +898,7 @@ html.touch .mce-grid td {
font-family: monospace;
width: 100% !important;
padding-top: 2.5rem;
resize: none;
}
& > iframe { // e.g. mailvelope frame

@ -3741,37 +3741,20 @@ function rcube_elastic_ui()
*/
function textarea_autoresize_init(textarea)
{
var resize = function(e) {
clearTimeout(env.textarea_timer);
env.textarea_timer = setTimeout(function() {
var area = $(e.target),
initial_height = area.data('initial-height'),
scroll_height = area[0].scrollHeight;
// do nothing when the area is hidden
if (!scroll_height) {
return;
}
if (!initial_height) {
area.data('initial-height', initial_height = scroll_height);
}
// strange effect in Chrome/Firefox when you delete a line in the textarea
// the scrollHeight is not decreased by the line height, but by 2px
// so jumps up many times in small steps, we'd rather use one big step
if (area.outerHeight() - scroll_height == 2) {
scroll_height -= 19; // 21px is the assumed line height
// FIXME: Is there a better way to get initial height of the textarea?
var min_height = ($(textarea)[0].rows || 5) * 21,
resize = function(e) {
var oldHeight = $(this).outerHeight();
$(this).outerHeight(0);
var newHeight = Math.max(min_height, this.scrollHeight);
$(this).outerHeight(oldHeight);
if (newHeight !== oldHeight) {
$(this).height(newHeight);
}
};
area.outerHeight(Math.max(initial_height, scroll_height));
}, 10);
};
$(textarea).css('overflow-y', 'hidden').on('input', resize).trigger('input');
// Make sure the height is up-to-date also in time intervals
setInterval(function() { $(textarea).trigger('input'); }, 1000);
$(textarea).on('input', resize).trigger('input');
};
// Inititalizes smart list input

Loading…
Cancel
Save