sakura icon indicating copy to clipboard operation
sakura copied to clipboard

ファイルツリーをフローティング表示時にファイルツリー設定ダイアログを表示して閉じてからファイルツリーを閉じるとフォーカスがエディタに戻らない

Open beru opened this issue 3 years ago • 8 comments

問題内容

件名が長いですが件名の通りの挙動が問題だと感じました。

再現手順

  • ファイルツリーをフローティング表示する
  • ファイルツリーのウィンドウの設定ボタンを押してファイルツリー設定ダイアログを表示する
  • ファイルツリー設定ダイアログを閉じる
  • ファイルツリーのウィンドウを閉じる
  • フォーカスがエディタに戻らない

再現頻度

必ず

問題のカテゴリ

  • プログラムの動作上の問題

環境情報

  • サクラエディタバージョン
  • 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

beru avatar Apr 28 '21 19:04 beru

ファイルツリーをフローティング表示時にファイルツリー設定ダイアログを表示して閉じてからファイルツリーを閉じるとフォーカスがエディタに戻らない

どうあるのが正しいと言ってます?

ファイルツリーをフローティング表示時に ファイルツリー設定ダイアログを表示して閉じてから ファイルツリーを閉じるとフォーカスがエディタに戻らない

問題の内容を分析すると 「ファイルツリーを閉じた直後のフォーカスはエディタに設定されるべきでは?」 と言ってるような気がします。

つまり、フローティング状態のファイルツリーを閉じるイベントには「フォーカスをエディタに戻す責任」があると言ってます。

本当ですか?

berryzplus avatar Apr 29 '21 05:04 berryzplus

どうあるのが正しいと言ってます?

サクラエディタ側にウィンドウのフォーカスを戻してほしいです。

問題の内容を分析すると 「ファイルツリーを閉じた直後のフォーカスはエディタに設定されるべきでは?」 と言ってるような気がします。

つまり、フローティング状態のファイルツリーを閉じるイベントには「フォーカスをエディタに戻す責任」があると言ってます。

本当ですか?

常にフォーカスをエディタに戻すべきなのかどうかはわかりません。

  1. サクラエディタを起動
  2. メニューの検索のファイルツリーを選んでファイルツリーのフローティングウィンドウを表示
  3. ファイルツリーのフローティングウィンドウの設定ボタンを押してファイルツリー設定ダイアログを表示
  4. ファイルツリー設定ダイアログを閉じる
  5. ファイルツリーのフローティングウィンドウを閉じる

この操作の間に他のアプリケーションをアクティブにしていないのにも関わらず他のアプリがアクティブになってしまう挙動が変だと感じました。

フォーカスという言葉を使いましたがアクティブウィンドウという用語の方が正確かもしれません。

beru avatar Apr 29 '21 06:04 beru

どうあるのが正しいと言ってます?

サクラエディタ側にウィンドウのフォーカスを戻してほしいです。

それであれば妥当だと思います。

「フローティングウインドウは、閉じられるときにメインウインドウにフォーカスを返す責任を持つ」 というのは妥当な気がします。

果たすべき責任を果たしていないのはバグなので、 どっかで対処できたらいいなぁと思います。

berryzplus avatar Apr 29 '21 07:04 berryzplus

👆のコメントは、サクラエディタのメインウインドウには、フォーカスを受け取ることのできる部品が2つ以上あることを理解してないと意味不明なのかも知れないです。

 メインウインドウ(CEditWnd)   ┣ツールバー   ┃┗検索ボックス   ┗スプリッターウインドウ(ビューは最大4分割で表示できますが、ビューの親にあたるウインドウ)    ┗エディタビュー(CEditView)

フローティング状態のウインドウの責任は、閉じられるときに「フォーカス所有権をメインウインドウに返す」というところまでだと思います。返したあとのフォーカスが最終的にどこにあたるかまでは責任範囲じゃないように思いました。

当初課題のかきっぷりだと、CEditWnd::GetActiveViewにSetFocusしそうな感じだったので、あえて突っ込んでみました。

berryzplus avatar Apr 30 '21 06:04 berryzplus

他のアプリがアクティブになってしまうという事を自分がきちんと最初から書くべきでしたね。

beru avatar Apr 30 '21 07:04 beru

ファイルツリーからファイルツリー設定を開いた後に閉じてファイルツリーも閉じるとエディタじゃないウィンドウに切り替わる #708

usagisita avatar Dec 10 '21 19:12 usagisita

重複していますね!

beru avatar Dec 10 '21 19:12 beru

#708 のタイムスタンプ

beru commented on 17 Dec 2018

かなり前から存在していた不具合のようです。

berryzplus avatar Dec 12 '21 04:12 berryzplus