タイピング中に同期がかかるとカーソルがノートの最初に戻る

バグ報告

タイピング中にノートの同期が始まると、そのノートの文頭に戻ってしまいます。
特定バージョンからというよりは以前より同期の頻度を増やしていただいたこともあってか気になるようになっただけかもしれません。

利用環境

  • Platform: macOS
  • Platform version: Mojave 10.14
  • App Version: 3.22.4

再現方法

テキストをタイピングしている間に同期処理が走ると発生します。

Obiさん

ご報告ありがとうございます。
同期がトリガーかどうか確認してみましたが、そのような挙動は再現できませんでした。
何か別の原因があるように思います。

まず、タイピング中に同期がかかる、というのは基本考えられません。
なぜなら自動保存は最後の変更から最低5秒経過してから実行されるからです。
ありうるとすれば、誰かとアカウントを共有しているケースです。
なぜタイピング中に同期が開始されるのか、その理由が分かれば原因究明に繋がるかもしれません。

アカウントを共有しているわけではありませんので、他に原因があるかもしれません。
一つ考えられるのは日本語を変換等せず確定させないままタイピングを続けている場合やタイピングとみなされないタイピング状態があるということなのでしょうか。

本日長文を書いている際になんどか発生したので、こちらに報告させていただいたのですが、こちらでも再現ができるように検証してみます。

Takuya さん

お疲れさまです。

実は私も、おそらく同様の現象をここ1週間くらいの使用中に5回前後ほど、遭遇しています。1日あたり、3,4 時間は使用していますが、発生しない日もあります。

このように発生頻度が極めて低いために再現方法をうまく確認できず、報告しあぐねていました。

感覚的には、Obi さんと同じようにタイピング中に発生している気がしますが、タイピング中だから意識がノートに集中していて、気付きやすいだけかもしれません。

発生した際の挙動は、以前ご報告した、
同期処理中にキャレット位置が先頭行の行頭に飛ぶことがある
と完全に同じ挙動です。しかし上記の報告時には1日に3,4回は発生していたため、発生頻度は格段に低減されています。

こちらの利用プラットフォームは、以下となります。

  • Platform: Windows
  • Platform version: 10
  • App Version: 3.22.4

手がかりがほぼ無い報告で申し訳ないですが、ひとまずご報告です。もし何か再現方法など分かればお知らせします。

なにかの手がかりになればということで、再度報告をさせていただきます。
今しがた、日本語を入力中しリターンキーを押したタイミングでノート文頭に戻りました。
そのタイミングでちょうど「Syncing…」だったので、やはり変換周りの可能性が疑われます。

同様の手順で再現を試みましたがすぐにはしなかったため、あくまで現象の報告にとどまっていまうのが恐縮ですが、またなにかわかれば報告させていただきます。

Otawaraさん、Obiさん

情報ありがとうございます。
コードを見直していたところ、一箇所心当たりを見つけました。

エディタの動作を軽くするために、エディタ変更検知後にアプリ内ステートへの反映を200ミリ秒ほど遅らせる処理(debounce)があります。
詳細は割愛しますが、これが確率的な現象の原因になっている可能性があります。

この遅延処理を除去したバージョンを、ひとまずmacOS版でビルドしました。
こちらをしばらくお試し頂けますか?

https://s3-ap-northeast-1.amazonaws.com/inkdrop-dist/tmp/Inkdrop-3.22.4-Mac-patch-1.zip

これで問題の現象が解消されればビンゴです。

Takuya さん

ありがとうございます!
早速こちらのバージョンを利用してレポートいたします!

1 Like

いかがでしょう?

No news is good news…ということで特に問題も無さそうですしリリースしたいと思います。

@craftzdog

バタバタしておりご報告ができておらずで申し訳ありません!!
結論からお伝えしますと、いただいたバージョンでも同様の現象が発生いたしました。

何度か再現を試みたのですが、引き続き再現ができない状態ではっきりしたことが言えずに申し訳ないのですが、いくつか原因になりそうな条件を記載しておきます。

・発生のトリガーは同期(こちらは間違いがなさそうです)
・日本語の変換時/確定時に発生?
・文章が一定以上長い場合に発生?(同期に時間がかかる場合?)

再現ができていない以上不確かな情報で申し訳ないのですが、現時点の状態としてご報告です。

@Yuta_Obi
ご報告ありがとうございます。
なるほど。。
IME は何をお使いでしょうか?

カーソルがトップに移動した時、編集内容が損なわれるといった事はありますか?

この現象は、エディタのテキストをアプリ側からセットした場合に発生します。
それは基本的にノートを開いた時か、Sync時にノートの内容が更新された場合のみです。
それ以外で起こりうるのはアプリ内ステートとエディタの間に齟齬があった時です。

海外ユーザからは同様の報告がありませんので、ご報告の通りIME関連・日本語依存の問題の可能性が高いです。
再現条件がはっきりしない以上、推測をもとにワークアラウンドを追加していくしか無さそうです。
引き続き何か分かりましたらご報告お願いいたします。

@craftzdog

IMEはGoogle日本語入力を使用しております。

編集内容が損なわれる

編集内容が欠損する、という現象に出くわしたことはないのですが、一部の文章が重複して追加されるということは発生したことがありました。

あいうえお
かきくけこ

↓ 「かきくけこ」入力後カーソルがトップに移動すると下記のようになる場合がある

あいうえお
あいうえお
かきくけこ

アプリ内ステートとエディタの間に齟齬があった時

[ 文章が一定以上長い場合に発生?(同期に時間がかかる場合?)]

という形で報告させていただきましたが、同期タイミングや速度の問題で、おっしゃるようなアプリ/エディタ間の齟齬が発生しているのではないか?といったことはありえそうです。

参考まで、私の環境でも Google 日本語入力を使用しています。

前回私がこちらに報告してから2回ほど発生しました。…が、再現方法はいまだ不明です。。

1 Like

なるほど、僕もGoogle日本語入力を利用しているので環境は同じようです。
入力テキストが重複するという現象はかなりIME要因の臭いがしますね。

入力中にもかかわらず同期がかかるという事は、日本語入力中はイベントが発生していないという事しか考えられません。
しかしながら、デバッグでは確かにイベントが発生しているので辻褄が合いません。漢字変換途中であっても。
なにか特定の条件下ではイベントが発生しないのかもしれません。そして自動保存がかかり同期が走る。

この仮説が正しければ、一つの回避策が思い浮かびます。
それは、日本語入力(text composition)の開始と終了をこちらで監視するという方法です。
変換が未確定の状態では自動同期を無効にします。
これでもしかしたら直るかもしれません。

こちらでも再現しようと試みると入力中は同期が走らないので、他にもなにか追加条件があるのかもしれませんね。

日本語入力(text composition)の開始と終了をこちらで監視

こういった形でそもそも条件を追加いただければ治るかもしれません!
ありがとうございます!

v3.23.0にて2つの対処を施しました:

  1. 齟齬を検知してエディタをアップデートする時、直前のカーソルの位置を保持する
  2. IME入力の間は自動保存を無効にする

これでまた様子を見て頂ければと思います。

ご協力感謝です!

1 Like

対処お疲れ様でした!

こちらも様子見したいと思いますー

ご対応ありがとうございます!
またレポートさせていただきます!

こちらいかがでしょうか。
自分の環境では発生していないです。