Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

マウスクリックによるキャレット移動が出来なくなる不具合の解消 #574

Merged
merged 1 commit into from
Oct 21, 2018
Merged

マウスクリックによるキャレット移動が出来なくなる不具合の解消 #574

merged 1 commit into from
Oct 21, 2018

Conversation

beru
Copy link
Contributor

@beru beru commented Oct 20, 2018

#547 に対する対策です。

マウス左ボタン押下でキャレットのフォーカスが無い時にも処理を行う事で、マウスによるキャレット移動が出来なくなる不具合を解消します。

既存のコードでマウス左ボタン押下でキャレットのフォーカスが無い時に処理を中断している理由は良く分かっていません。中断しないようにしても特に問題は確認出来ませんでした。何か見過ごしているかもしれませんが…。

@beru beru added the 🐛bug🦋 ■バグ修正(Something isn't working) label Oct 20, 2018
@m-tmatma
Copy link
Member

再現手順は
#526 (comment)
ですか?

結局再現できたのですか?
こちらでは正確な手順がわからないというのもあり、再現できていません。

再現手順を記載いただけますか?

再現手順を PR にもともとの URL を記載した上で、転記していただけると
確認するのが楽なので助かります。

@m-tmatma
Copy link
Member

あと 動画もつけていただけと簡単に確認できるのでうれしいです。

@beru
Copy link
Contributor Author

beru commented Oct 21, 2018

再現手順は
#526 (comment)
ですか?

結局再現できたのですか?
こちらでは正確な手順がわからないというのもあり、再現できていません。

再現手順を記載いただけますか?

再現手順を PR にもともとの URL を記載した上で、転記していただけると
確認するのが楽なので助かります。

再現手順は問題を報告してくれた @ds14050 さんと @berryzplus さんが

#526 (comment)
#526 (comment)

に記載してくれました。

自分の方でも再現する事が出来ました。以下のような再現手順です。

  • 縦スクロールが有効になるある程度長い文書を用意する
  • キャレットの位置が見えない位置にスクロールする
  • 他のウィンドウにいったんフォーカスを合わせる
    • 「ファイルを開く」や「検索」や「アウトライン解析」でもOKです。モーダル表示な場合はその後の操作の為にウィンドウを閉じる必要があります。
  • 現在のキャレットの位置が見えないスクロール位置はそのままで、マウスの左クリックでキャレット移動や選択を試みる
  • 左クリック後に反応が無い。マウスの中ホイールでスクロール操作は可能。キャレットが表示される位置までスクロールすればマウスの左クリック操作が有効になる。

test

Copy link
Contributor

@berryzplus berryzplus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTMです。

この分岐が入っていた理由として考えられる特殊な設計に心当たりがないわけでもないですが、箇所を洗い出すのは不可能だと思います。常識的にはこういう分岐はしないように思いますので、削ってしまって問題ないと思います。

⇒こういう分岐が必要な特殊な設計がどんなのかというと・・・

  • 何かの処理中にユーザ入力をブロックしたいケース
    つまり、マルチスレッド環境を意識したシングルスレッド設計の「時間のかかる処理」です。
    検索とかGrepとかが該当すると思うんですが、分岐が活用されるようなコードは見当たりません。

むしろ逆で、シングルスレッドのイベント処理中に他のイベントを処理させようとするコードがあるくらいで、ユーザ入力を止める、という設計のコードはないように思われます。

じっくり考えても100%結論は出ないので、とりあえず入れてしまう、でよいと思います。
入れた経緯が分からんので削る理由も書きずらいことですし・・・:cry:

@beru
Copy link
Contributor Author

beru commented Oct 21, 2018

Merge します。もし問題が見つかったら別の PR で対処しましょう。

@beru beru merged commit 773c87a into sakura-editor:master Oct 21, 2018
@beru beru deleted the HideCaret_ShowCaret_FixBug branch October 21, 2018 15:53
@m-tmatma m-tmatma added this to the next release milestone Oct 21, 2018
HoppingTappy pushed a commit to HoppingTappy/sakura that referenced this pull request Jun 11, 2019
…xBug

マウスクリックによるキャレット移動が出来なくなる不具合の解消
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛bug🦋 ■バグ修正(Something isn't working)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants