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

トリプルクリック時に次の行の先頭にURLがあるとそれが選択されてしまう現象が起きないように対策 #1753

Merged
merged 1 commit into from
Jan 10, 2022

Conversation

beru
Copy link
Contributor

@beru beru commented Jan 4, 2022

PR の目的

#1745 で報告された問題が起きないようにするのが目的です。

カテゴリ

  • 不具合修正

PR の背景

PR のメリット

トリプルクリック時に次の行が選択されてしまうのは挙動として不自然です。

それが起きないようにする事で予期しない挙動が発生するのを防ぎます。

PR のデメリット (トレードオフとかあれば)

マウス左ボタン押下に対応する CEditView::OnLBUTTONDOWN の処理を途中で中断するように return; を入れたけれど、その事によって本来行うべき処理が行われなくなる恐れがある。

仕様・動作説明

PR の影響範囲

マウス左ボタン押下に対応する CEditView::OnLBUTTONDOWN の処理で、トリプルクリックを処理する記述の最後に return; するように記述を追加しました。こうする事でトリプルクリック処理の後に、後続に記述されている処理が実行されないようにして問題の現象を発生する事を回避しました。

テスト内容

テスト1

手順

  • 1行目に文字列、2行目にURLを書く。
  • 1行目をトリプルクリックする。
  • 1行目が選択される事を確認

関連 issue, PR

#1745

参考資料

@beru
Copy link
Contributor Author

beru commented Jan 4, 2022

少し愚痴が入ってしまいますが、CEditView::OnLBUTTONDOWN メソッドは470行近くあります。こんだけ記述が長いと処理内容が互いに整合性が取れているか把握するのが厳しいと思いますね。実際に報告された変な現象が発生していますし。こういう長いプログラムの記述を見かける事が結構色々なシチュエーションであります。書いた人は多分その時は(その人の感覚的には)結構把握しているのかもしれませんが、後になってそのコードを読む人は???状態になります。

自分が問題回避のために追加した return; で処理を中断する事で他の問題が発生しないか心配ですが、まぁ影響範囲はトリプルクリック時のみなので限定されているかなと思います。

@beru beru added the 🐛bug🦋 ■バグ修正(Something isn't working) label Jan 4, 2022
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 4, 2022

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell D 1 Code Smell

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@AppVeyorBot
Copy link

Build sakura 1.0.3971 completed (commit 7117b33f9b by @beru)

@@ -289,6 +289,7 @@ normal_action:;
GetSelectionInfo().BeginSelectArea(); // 現在のカーソル位置から選択を開始する
GetSelectionInfo().m_bBeginLineSelect = false; // 行単位選択中 OFF
}
return;
Copy link
Contributor

Choose a reason for hiding this comment

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

修正ここだけですね。

「必要と思われるreturnがなかったので足しました。」ですね。

「必要と思われるreturn」に異論はないです。

@beru
Copy link
Contributor Author

beru commented Jan 10, 2022

レビューありがとうございました。Mergeします。
もし問題が見つかったらまた別のPRで対処します。

@beru beru merged commit f095569 into master Jan 10, 2022
@beru beru deleted the triple_click_next_line_url_selected branch January 10, 2022 15:48
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