-
Notifications
You must be signed in to change notification settings - Fork 2
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
バグ修正や小さな改善. #46
バグ修正や小さな改善. #46
Conversation
+ コード整理.
追加で修正です.(今マージされましたが.)
以上です.マージありがとうございます. |
♻️ AviUtlウィンドウをTools::Windowでサブクラス化するように変更しました
🔥 シャトルをクリックしたときフォーカスを当てる処理を削除しました ✨ コンテナの一部メッセージをAviUtlウィンドウに転送するようにしました ✨ サブウィンドウの一部メッセージをAviUtlウィンドウに転送するようにしました
今現在のソースをコンパイルして動作確認してみたところ,この PR での提案部分は全て正常に動いているようでした.大量の変更箇所をきちんと確認し,1つ1つ丁寧に対応して下さりありがとうございました. あと私の反省点として,今回のこの PR は1つの案件としては変更箇所が多すぎたかもしれません.小分けして余り多数の PR を投下するのも気が引けたのと,各変更部分が conflict する部分もあったので,まとめて提案しようと判断した結果です.どの修正項目がどのコード変更部分と対応してるのか判別がし辛かったかもしれません. もしまた PR する機会があったなら,やはり余り変更箇所が多くならないよう小分けにした方が都合がいいでしょうか?それとも今回のようなサイズでも問題なかったでしょうか? |
PR先がすべてを採用するとは限らないと思うので、少なくともコミットは小分けにしたほうがいいと思います。 |
了解しました.これからはコミットごとに変更内容をまとめるようにしてみます.改めて今回は本当にありがとうございました. |
いくつか問題点を見つけて対処できたので提案します.
DirtyCheck のバグ修正:
*
マークが消えた.*
マークが消えなかった.(i) と (iii) は色々勘違いっぽいコードだったことが原因だったようです.
Check()
関数はget()
関数と名前が似ているため,役割を明確にする目的でUpdate()
関数に改名,戻り値もvoid
にしました.(ii) は手動でタイトルから
*
マークを消すようにしました.EditBoxTweaker の変更.
[[fallthrough]];
のコメントアウトを解除.(i) について,実際にテストした画像がこちらです(いずれも Segoe UI, サイズ14):
UIスケール100%:

UIスケール125%:

UIスケール150%:

ボックスとの比率が変わってきてしまっているのがわかると思います.いわば,比率の二重適用になっていたようでした.修正の方針としては無効化するか逆掛けするかでしょうが指定できるフォントサイズが整数に限られるため,逆掛けした場合 UIスケール > 100% のとき,違う数値を設定しても同じフォントサイズになることもあり調整しにくいと思い無効化する方針にしました.既存の設定が壊れる結果にはなりますが,以前だとスキップされていた整数値も設定できることになるのでいい面もあります.
(ii) の
[[fallthrough]]
の部分は私の以前のプルリクの部分のようですが,これはその時のプロジェクトが C++14 をターゲットとしていた一方,[[fallthrough]]
は C++17 以降だった名残です.今のプロジェクトは C++20 のようなのであったほうがいいです.自分で書いた部分なので自分で戻すことにしました.(iii) はどちらかというと個人的な趣向です.他の Detours に適用する構造体と型も統一できていると思います.
Nest の修正.
(i) について.Nest の
MainWindow
以外のウィンドウにフォーカスがある状態で,例えばオブジェクトの長さを変えるダイアログを出してキャンセルした直後は一度マウス操作に戻ってフォーカスを切り替えなおすなどしないとショートカットキーを受け付けませんでした.他にもフロート状態のサブウィンドウのタイトル部分をクリックした直後などにも受け付けませんでした.当該ウィンドウのメッセージハンドラにキー入力メッセージをAviUtlのメインウィンドウに丸投げする処理を書いておきました.(ii) について,私は AviUtl を1枚のウィンドウに収めるのではなく,いくつかのグループにドッキングして使いたい派なのですが,その時にサブウィンドウの名前が一度何かにドッキングしないと変更できないのが不便に感じたので,タイトルの右クリックメニューに項目を追加しました.
(iii) について,レイアウトを構築していくとき不便だと感じていたので修正しました.
(iv) はどちらかというと (ii) の副産物です.
SubWindow
に右クリックメニューを追加するタイミングにinit()
関数を定義したのですが,MainWindow
のinit()
関数を参考にしたついでです.デフォルトのアイコンよりもちょっときれいになったと思います.その他小さな修正.
WinUtility.h
のisAncestor()
関数は Win32 API のIsChild()
関数を使うほうが手短になると思います.Window.h
のsubclassProc()
関数に明らかに無駄な関数呼び出しがあったので無効化しました.おそらくはデバッグ用コードのコメントアウト忘れだと思いますが,呼び出される頻度の高い部分なので無効化したほうがいいと思いました.以上です.ご確認していただければと思います.