@@ -468,9 +468,9 @@ namespace fcitx {
468468 if (surr.isValid () && surr.cursor () == realtextLen.load (std::memory_order_acquire)) {
469469 LOTUS_INFO (" Skip retry" );
470470 } else {
471- // Retry x3 (2 ms each), khi can (chromium,electron,...)
472- for (int retry = 0 ; retry < 3 ; ++retry) {
473- std::this_thread::sleep_for (std::chrono::milliseconds (2 ));
471+ // Retry x5 (1 ms each), khi can (chromium,electron,...)
472+ for (int retry = 0 ; retry < 5 ; ++retry) {
473+ std::this_thread::sleep_for (std::chrono::milliseconds (1 ));
474474 const auto & surr2 = ic_->surroundingText ();
475475 if (surr2.isValid () && surr2.cursor () == realtextLen.load (std::memory_order_acquire)) {
476476 break ;
@@ -484,8 +484,8 @@ namespace fcitx {
484484 pending_commit_string_ = " " ;
485485
486486 event.filterAndAccept (); // Filter out the final trigger backspace.
487- if (getFrontendName (ic_) == " dbus" && !ic_->surroundingText ().isValid ())
488- replayBufferedKeys (); // Does we need drop this?
487+ // if (getFrontendName(ic_) == "dbus" && !ic_->surroundingText().isValid())
488+ // replayBufferedKeys(); // Does we need drop this?
489489 return true ;
490490 }
491491 return false ;
@@ -683,32 +683,6 @@ namespace fcitx {
683683 history_ += keyUtf8;
684684 realtextLen.fetch_add (1 , std::memory_order_acq_rel);
685685
686- replayBufferToEngine (history_);
687-
688- auto commitAfterReplay = UniqueCPtr<char >(EnginePullCommit (lotusEngine_.handle ()));
689- if (commitAfterReplay && (*commitAfterReplay.get () != 0 )) {
690- std::string commitStr = commitAfterReplay.get ();
691- std::string commonPrefix;
692- std::string deletedPart;
693- std::string addedPart;
694- compareAndSplitStrings (oldPreBuffer_, commitStr, commonPrefix, deletedPart, addedPart);
695-
696- if (!deletedPart.empty ()) {
697- if (performReplacement (deletedPart, addedPart))
698- keyEvent.forward ();
699- } else if (!addedPart.empty ()) {
700- ic_->commitString (addedPart);
701- LOTUS_INFO (" Commit: " + addedPart);
702- }
703-
704- history_.clear ();
705- ResetEngine (lotusEngine_.handle ());
706- oldPreBuffer_.clear ();
707-
708- keyEvent.filterAndAccept ();
709- return ;
710- }
711-
712686 UniqueCPtr<char > preeditC (EnginePullPreedit (lotusEngine_.handle ()));
713687 std::string preeditStr = (preeditC && (*preeditC.get () != 0 )) ? preeditC.get () : " " ;
714688
@@ -969,8 +943,8 @@ namespace fcitx {
969943 }
970944 replacement_thread_id_.store (0 , std::memory_order_release);
971945 replacement_start_ms_.store (0 , std::memory_order_release);
972- if (getFrontendName (ic_) == " dbus" && !ic_->surroundingText ().isValid ())
973- replayBufferedKeys (); // Does we need drop this?
946+ // if (getFrontendName(ic_) == "dbus" && !ic_->surroundingText().isValid())
947+ // replayBufferedKeys(); // Does we need drop this?
974948 }
975949 KeySym currentSym = keyEvent.rawKey ().sym ();
976950 if (*engine_->config ().autoCapitalizeAfterPunctuation && realMode != LotusMode::Off) {
@@ -1162,11 +1136,9 @@ namespace fcitx {
11621136 }
11631137 oldPreBuffer_.clear ();
11641138 history_.clear ();
1165- if (!is_deleting_.load (std::memory_order_acquire)) {
1166- expected_backspaces_ = 0 ;
1167- current_backspace_count_ = 0 ;
1168- pending_commit_string_.clear ();
1169- }
1139+ expected_backspaces_ = 0 ;
1140+ current_backspace_count_ = 0 ;
1141+ pending_commit_string_.clear ();
11701142 emojiBuffer_.clear ();
11711143 emojiCandidates_.clear ();
11721144 buffered_keys_.clear ();
@@ -1179,14 +1151,13 @@ namespace fcitx {
11791151 bool LotusState::isEmptyHistory () {
11801152 return history_.empty ();
11811153 }
1182-
1154+ /*
11831155 void LotusState::replayBufferedKeys() {
11841156 LOTUS_INFO("Starting replay buffered keys");
11851157 if (buffered_keys_.empty()) {
11861158 return;
11871159 }
11881160 auto keys = std::move(buffered_keys_);
1189- buffered_keys_.clear ();
11901161 for (size_t i = 0; i < keys.size(); ++i) {
11911162 KeySym sym = static_cast<KeySym>(keys[i].sym);
11921163 uint32_t state = keys[i].state;
@@ -1236,40 +1207,6 @@ namespace fcitx {
12361207 history_ += keyUtf8;
12371208 realtextLen.fetch_add(1, std::memory_order_acq_rel);
12381209
1239- replayBufferToEngine (history_);
1240-
1241- auto commitAfterReplay = UniqueCPtr<char >(EnginePullCommit (lotusEngine_.handle ()));
1242- if (commitAfterReplay && (*commitAfterReplay.get () != 0 )) {
1243- std::string commitStr = commitAfterReplay.get ();
1244- std::string commonPrefix;
1245- std::string deletedPart;
1246- std::string addedPart;
1247- compareAndSplitStrings (oldPreBuffer_, commitStr, commonPrefix, deletedPart, addedPart);
1248-
1249- if (!deletedPart.empty ()) {
1250- // Re-buffer remaining keys for next replay cycle.
1251- for (size_t j = i + 1 ; j < keys.size (); ++j) {
1252- if (buffered_keys_.size () < MAX_BUFFERED_KEYS ) {
1253- buffered_keys_.push_back (keys[j]);
1254- }
1255- }
1256- performReplacement (deletedPart, addedPart);
1257-
1258- history_.clear ();
1259- ResetEngine (lotusEngine_.handle ());
1260- oldPreBuffer_.clear ();
1261- return ;
1262- }
1263- if (!addedPart.empty ()) {
1264- ic_->commitString (addedPart);
1265- }
1266-
1267- history_.clear ();
1268- ResetEngine (lotusEngine_.handle ());
1269- oldPreBuffer_.clear ();
1270- continue ;
1271- }
1272-
12731210 UniqueCPtr<char> preeditC(EnginePullPreedit(lotusEngine_.handle()));
12741211 std::string preeditStr = (preeditC && (*preeditC.get() != 0)) ? preeditC.get() : "";
12751212
@@ -1307,4 +1244,5 @@ namespace fcitx {
13071244 }
13081245 LOTUS_INFO("Replay buffered keys done");
13091246 }
1247+ */
13101248} // namespace fcitx
0 commit comments