Fixed firing of incorrect values to document changes rpl::event_stream.
This commit is contained in:
		
							parent
							
								
									ee44c5b89e
								
							
						
					
					
						commit
						ba12ebc67a
					
				
					 2 changed files with 10 additions and 1 deletions
				
			
		|  | @ -2085,6 +2085,9 @@ void InputField::processFormatting(int insertPosition, int insertEnd) { | ||||||
| 							action.intervalStart = fragmentPosition + (ch - textStart); | 							action.intervalStart = fragmentPosition + (ch - textStart); | ||||||
| 							action.intervalEnd = action.intervalStart + emojiLength; | 							action.intervalEnd = action.intervalStart + emojiLength; | ||||||
| 						} | 						} | ||||||
|  | 						if (emojiLength > 1) { | ||||||
|  | 							_emojiSurrogateAmount += emojiLength - 1; | ||||||
|  | 						} | ||||||
| 						break; | 						break; | ||||||
| 					} | 					} | ||||||
| 
 | 
 | ||||||
|  | @ -2220,7 +2223,9 @@ void InputField::onDocumentContentsChange( | ||||||
| 		_correcting = false; | 		_correcting = false; | ||||||
| 		QTextCursor(document->docHandle(), 0).endEditBlock(); | 		QTextCursor(document->docHandle(), 0).endEditBlock(); | ||||||
| 		handleContentsChanged(); | 		handleContentsChanged(); | ||||||
| 		_documentContentsChanges.fire({position, charsRemoved, charsAdded}); | 		const auto added = charsAdded - _emojiSurrogateAmount; | ||||||
|  | 		_documentContentsChanges.fire({position, charsRemoved, added}); | ||||||
|  | 		_emojiSurrogateAmount = 0; | ||||||
| 	}); | 	}); | ||||||
| 
 | 
 | ||||||
| 	chopByMaxLength(insertPosition, insertLength); | 	chopByMaxLength(insertPosition, insertLength); | ||||||
|  |  | ||||||
|  | @ -482,6 +482,10 @@ private: | ||||||
| 	int _realInsertPosition = -1; | 	int _realInsertPosition = -1; | ||||||
| 	int _realCharsAdded = 0; | 	int _realCharsAdded = 0; | ||||||
| 
 | 
 | ||||||
|  | 	// Calculate the amount of emoji extra chars
 | ||||||
|  | 	// before _documentContentsChanges fire.
 | ||||||
|  | 	int _emojiSurrogateAmount = 0; | ||||||
|  | 
 | ||||||
| 	std::unique_ptr<TagMimeProcessor> _tagMimeProcessor; | 	std::unique_ptr<TagMimeProcessor> _tagMimeProcessor; | ||||||
| 
 | 
 | ||||||
| 	SubmitSettings _submitSettings = SubmitSettings::Enter; | 	SubmitSettings _submitSettings = SubmitSettings::Enter; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 23rd
						23rd