From 99f63ab64dc501e64174ffb0099196b359acc59e Mon Sep 17 00:00:00 2001 From: daboe01 Date: Fri, 29 Jul 2016 16:28:17 +0200 Subject: [PATCH] fixed: are double typing issue in webkit browsers --- AppKit/CPTextView/CPTextView.j | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/AppKit/CPTextView/CPTextView.j b/AppKit/CPTextView/CPTextView.j index 229497895..ee5474762 100644 --- a/AppKit/CPTextView/CPTextView.j +++ b/AppKit/CPTextView/CPTextView.j @@ -2245,7 +2245,6 @@ var CPTextViewAllowsUndoKey = @"CPTextViewAllowsUndoKey", var _CPNativeInputField, - _CPNativeInputFieldLastValue, _CPNativeInputFieldKeyDownCalled, _CPNativeInputFieldKeyUpCalled, _CPNativeInputFieldKeyPressedCalled, @@ -2298,7 +2297,7 @@ var _CPCopyPlaceholder = '-'; [currentFirstResponder setSelectedRange:placeholderRange]; [currentFirstResponder insertText:aStr]; - _CPNativeInputField.innerHTML = _CPNativeInputFieldLastValue = ''; + _CPNativeInputField.innerHTML = ''; [self hideInputElement]; @@ -2353,8 +2352,8 @@ var _CPCopyPlaceholder = '-'; return; } - // chrome-trigger: keypressed is omitted for deadkeys and cursor keys - if (!_CPNativeInputFieldActive && _CPNativeInputFieldKeyPressedCalled == NO && _CPNativeInputField.innerHTML.length && _CPNativeInputField.innerHTML != _CPCopyPlaceholder && _CPNativeInputField.innerHTML.length < 3 && _CPNativeInputFieldLastValue !== _CPNativeInputField.innerHTML) + // chrome-trigger: keypressed is omitted for deadkeys + if (!_CPNativeInputFieldActive && _CPNativeInputFieldKeyPressedCalled == NO && _CPNativeInputField.innerHTML.length && _CPNativeInputField.innerHTML != _CPCopyPlaceholder && _CPNativeInputField.innerHTML.length < 3) { _CPNativeInputFieldActive = YES; [currentFirstResponder _activateNativeInputElement:_CPNativeInputField]; @@ -2370,8 +2369,6 @@ var _CPCopyPlaceholder = '-'; _CPNativeInputField.innerHTML = ''; } - _CPNativeInputFieldLastValue = _CPNativeInputField.innerHTML; - return false; // prevent the default behaviour }, true); @@ -2386,6 +2383,10 @@ var _CPCopyPlaceholder = '-'; _CPNativeInputFieldKeyPressedCalled = NO; var currentFirstResponder = [[CPApp keyWindow] firstResponder]; + // webkit-browsers: cursor keys do not emit keypressed and would otherwise activate deadkey mode + if (!CPBrowserIsEngine(CPGeckoBrowserEngine) && e.which >= 37 && e.which <= 40) + _CPNativeInputFieldKeyPressedCalled = YES; + if (![currentFirstResponder respondsToSelector:@selector(_activateNativeInputElement:)]) return;