sakura
sakura copied to clipboard
ファイルツリーをフローティング表示時にファイルツリー設定ダイアログを表示して閉じてからファイルツリーを閉じるとフォーカスがエディタに戻らない
問題内容
件名が長いですが件名の通りの挙動が問題だと感じました。
再現手順
- ファイルツリーをフローティング表示する
- ファイルツリーのウィンドウの設定ボタンを押してファイルツリー設定ダイアログを表示する
- ファイルツリー設定ダイアログを閉じる
- ファイルツリーのウィンドウを閉じる
- フォーカスがエディタに戻らない
再現頻度
必ず
問題のカテゴリ
- プログラムの動作上の問題
環境情報
- サクラエディタバージョン
- PC情報
サクラエディタ v2.4.2.3711 64bit dev Alpha Version
(GitHash 2e01db29680d5105d754c27e04906467a05a45b8)
(GitURL https://github.com/sakura-editor/sakura.git)
Compile Info: V_A641916 WPR WIN601/I800/C000/N601
Last Modified: 2021/4/27 15:04:06
ファイルツリーをフローティング表示時にファイルツリー設定ダイアログを表示して閉じてからファイルツリーを閉じるとフォーカスがエディタに戻らない
どうあるのが正しいと言ってます?
ファイルツリーをフローティング表示時に ファイルツリー設定ダイアログを表示して閉じてから ファイルツリーを閉じるとフォーカスがエディタに戻らない
問題の内容を分析すると 「ファイルツリーを閉じた直後のフォーカスはエディタに設定されるべきでは?」 と言ってるような気がします。
つまり、フローティング状態のファイルツリーを閉じるイベントには「フォーカスをエディタに戻す責任」があると言ってます。
本当ですか?
どうあるのが正しいと言ってます?
サクラエディタ側にウィンドウのフォーカスを戻してほしいです。
問題の内容を分析すると 「ファイルツリーを閉じた直後のフォーカスはエディタに設定されるべきでは?」 と言ってるような気がします。
つまり、フローティング状態のファイルツリーを閉じるイベントには「フォーカスをエディタに戻す責任」があると言ってます。
本当ですか?
常にフォーカスをエディタに戻すべきなのかどうかはわかりません。
- サクラエディタを起動
- メニューの検索のファイルツリーを選んでファイルツリーのフローティングウィンドウを表示
- ファイルツリーのフローティングウィンドウの設定ボタンを押してファイルツリー設定ダイアログを表示
- ファイルツリー設定ダイアログを閉じる
- ファイルツリーのフローティングウィンドウを閉じる
この操作の間に他のアプリケーションをアクティブにしていないのにも関わらず他のアプリがアクティブになってしまう挙動が変だと感じました。
フォーカスという言葉を使いましたがアクティブウィンドウという用語の方が正確かもしれません。
どうあるのが正しいと言ってます?
サクラエディタ側にウィンドウのフォーカスを戻してほしいです。
それであれば妥当だと思います。
「フローティングウインドウは、閉じられるときにメインウインドウにフォーカスを返す責任を持つ」 というのは妥当な気がします。
果たすべき責任を果たしていないのはバグなので、 どっかで対処できたらいいなぁと思います。
👆のコメントは、サクラエディタのメインウインドウには、フォーカスを受け取ることのできる部品が2つ以上あることを理解してないと意味不明なのかも知れないです。
メインウインドウ(CEditWnd) ┣ツールバー ┃┗検索ボックス ┗スプリッターウインドウ(ビューは最大4分割で表示できますが、ビューの親にあたるウインドウ) ┗エディタビュー(CEditView)
フローティング状態のウインドウの責任は、閉じられるときに「フォーカス所有権をメインウインドウに返す」というところまでだと思います。返したあとのフォーカスが最終的にどこにあたるかまでは責任範囲じゃないように思いました。
当初課題のかきっぷりだと、CEditWnd::GetActiveViewにSetFocusしそうな感じだったので、あえて突っ込んでみました。
他のアプリがアクティブになってしまうという事を自分がきちんと最初から書くべきでしたね。
ファイルツリーからファイルツリー設定を開いた後に閉じてファイルツリーも閉じるとエディタじゃないウィンドウに切り替わる #708
重複していますね!
#708 のタイムスタンプ
beru commented on 17 Dec 2018
かなり前から存在していた不具合のようです。