検索コンテントとイベントビューのコンテントのズレ
検索画面で結果へジャンプを繰り返してると、
こんな風に検索コンテントとイベントビューのコンテントがズレることがあるのですが、これはなくせないものなのでしょうか。
Comments (12)
-
repo owner -
reporter >ズレが発生するのはイベントツリー自体を編集した結果でしょうか。
いえ、無編集でなりますよ。
例えばマッチ箇所にある適当なコンテントでダブルクリック→下に適当にスクロールして同じようにダブルクリック→上に適当にスクロールして以下同・・・これを繰り返してると検索コンテントと検索結果のコンテントがズレることがあります。
事実、上の画像も無編集で起きたものです。
もう一度同じコンテントをダブルクリックすると正しい位置に戻ります。 -
repo owner 再現できません。具体的なシナリオと手順は分かるでしょうか?
「例えばマッチ箇所にある適当なコンテント」というのは検索結果とイベントツリービューのどちらの事でしょうか?
-
reporter 例えば交易都市リューンで
この状態にしてから(これらの設定に深い意味はありませんが)、下に上にスクロールしてダブルクリックを繰り返してみるとマッチ箇所とイベントビューのコンテントでズレる事がありませんか。10回、20回試行しても起きないでしょうか。
「例えばマッチ箇所にある適当なコンテント」というのは検索結果とイベントツリービューのどちらの事でしょうか?
検索結果の方です。イベントツリービューのコンテントは触る必要はないです。
-
repo owner 試しましたが、正しい意味では再現しません。
実際には似た事は発生するのですが、それは単にダブルクリックに失敗した時です。
メッセージコンテントしか検索結果欄に無いのにそれ以外のコンテントが選択されている、というような状況が発生するのであれば、そのような原因でない事を証明できると思います。
-
reporter ダブルクリックの失敗ですか。
イベントビューのコンテント選択の青線が動いてる時点で成功だと思ってたのですが違うのでしょうか。
ジャンプする時ダイアログを開くにチェックを入れてやってみると、開いたコンテントとイベントビューの選択されてるコンテントが違うことがある(同じだと思って確認しないでいじると痛い目見ることがある)のですが、これもダブルクリックの失敗故ということでしょうか。
自分の無知ゆえかダブルクリックの失敗が原因というのがピンと来ないです。メッセージコンテントしか検索結果欄に無いのにそれ以外のコンテントが選択されている、というような状況が発生するのであれば、そのような原因でない事を証明できると思います。
確かにそういうズレはないです。
あくまでズレは検索結果にあるものの中でだけです。 -
repo owner すばやく操作しなかった場合には再現しますか?
処理の遅延で手許の操作とは異なるタイミングで処理が実行されたという事はありませんか?
-
reporter もしかしたらxeditor側の問題ではないかもしれません。
と言っても、何が原因か見当がつきませんが・・・。どんな感じなのか動画を撮ってみました。(パスワードはcw)
-
repo owner ありがとうございます。動画を見る限り、私の想像するような原因では無さそうですね。遅延だとしたら発生の前に選択が動かないタイミングがあるはずです。
ダブルクリックした時に座標のずれでも発生しているのでしょうか? 調べてみます。
-
repo owner 再現できました。イベントごとに記憶される選択状態の復元が検索結果へのジャンプよりも優先されてこのような現象が起きるようです。
修正を試みますが、今日中にできるかは微妙です。
-
repo owner pull request #387
修正しました。イベントごとの選択状態の復元とかち合っていたのが原因でした。
動画が無ければ、実際に何が起きているのかずっと分からなかったかもしれません。助かりました。ありがとうございます。
-
reporter - changed status to resolved
修正確認しました。
毎回誤ることなく正しい位置を示してくれるのが快適です。返信や修正のスピードに関してはお気遣いなく。
- Log in to comment
ズレが発生するのはイベントツリー自体を編集した結果でしょうか。
これは難しいです。検索結果にはリソースの位置を示す情報が格納されており、それによって検索結果のジャンプが可能になっているのですが、常にこの情報を正確な状態に保とうとすると、何か編集がなされるたびに全ての位置情報を更新しなければなりません。
編集には削除・移動・追加などの検索結果を根本から覆すうようなものも含む様々なパターンがあり、結局の所、何か編集をされるたびに毎回全検索をやり直すか、それに相当する事をしなければならなくなります。処理負荷やアンドゥ・リドゥなどとの兼ね合いも考えると、これは現実的ではありません。そのため、現在のような実装になっています。