beru
beru
> スペースがあると行番号が表示されますね。 あ、本当ですね…。確認が不十分でした。という事でタイトルを変更しました。
ファイルの行数にカウントされない終端空行には行番号を表示しない、というのも理屈としては分からなくもないです。しかし他のエディタが軒並み表示してるのはその方がユーザの感覚としては違和感が無いということなんですかね?入力したらその行が有効になるわけで未来の目安にはなるので。
> Draftのままですが、残課題とかありましたっけ? テスト未実施なのでDraftにしています。
個人的には動作に支障が無ければ今のまま(変えない)でも良いんじゃないかなと思います。 https://docs.microsoft.com/en-us/windows/win32/sbscs/application-manifests#assemblyidentity をみると optional という事なので削ってしまって簡単に動作確認して問題が無さそうならそれでも良いんじゃないかと。
というか今はプロジェクトのプロパティの Manifest Tool で設定するからこのファイルは x86/x64 ビルドでは使われていないのかな。。それならあまり気にする必要が無いような。。
この現象はプロジェクトのプロパティを変更する事で解消する事を確認しました。 ### Visual Studioの言語設定が `English` の場合 `Manifest Tool` > `Input and Output` > `DPI Awareness` の設定を `High DPI Aware` から `Per Monitor High DPI Aware` に変更 ### Visual Studioの言語設定が `日本語`...
`Per-Monitor DPI Awareness` にきちんと対応するとなると、色々と自前でやらないといけない事が多くなりそうです。 基本的には `WM_DPICHANGED` メッセージに対応する必要があるようです。 https://docs.microsoft.com/en-us/windows/win32/hidpi/high-dpi-desktop-application-development-on-windows#per-monitor-and-per-monitor-v2-dpi-awareness https://docs.microsoft.com/en-us/windows/win32/hidpi/wm-dpichanged このメッセージは下記のイベントで送信されるようです。 - ウィンドウが異なるDPIのモニター上に移動された時 - ウィンドウを表示しているモニターのDPIが変更された時 従来の `System DPI Awareness` の場合は、表示スケール値が異なるディスプレイにウィンドウを移動した場合はウィンドウのビットマップ(これはWDDMで扱うDirectXのサーフェイス的なウィンドウ表示画像という意味合いだと思う)を拡大縮小して表示するとの事です。試しに表示スケールが100%のディスプレイから175%のディスプレイにウィンドウを移動させると表示スケールの比率に合わせてウィンドウが拡大して表示されますが、クライアントエリアがぼけた表示になりました。 `Per-Monitor DPI Awareness` にきちんと対応するアプリでは、`WM_DPICHANGED` メッセージを受け取ったら新しいDPIに合わせてウィンドウの表示(基本的にはクライアントエリアに表示するコントロールの位置やサイズ、あとフォントサイズとかもかな?)を調整する必要が出てくるようです。 > Most UI frameworks used by...
> はい、それを分かったうえで、とりあえずマニュフェストだけかえちゃいましょう、も是かな、とw そうした場合にどういう事が起きうるかを考えてみました。 とあるユーザーがメインディスプレイとしてDELLのUP3218Kを使っているとします。そのモニターは31.5インチでネイティブ解像度が7680 x 4320なので、Windowsのディスプレイ設定の表示スケールは400%に設定されています。そしてそのユーザーのサブディスプレイのスペックが19インチで解像度が1280 x 1024で表示スケールが100%に設定されていたとします。この動作環境だと、サクラエディタのウィンドウをメインディスプレイからサブディスプレイに移動したときに、本来表示されるサイズより縦横それぞれ4倍の大きさで表示される事になります。これではダイアログによってはサブディスプレイの画面に収まらないかもしれません。 上記の例はちょっと極端だと思いますが、本来 `Per-Monitor DPI Awareness` の場合に行うべき処理を省いた場合には発生しうる事です。なのでmanifestの設定をデフォルトでそれに変更するのはちょっと気が引けます。10年後ぐらいには8Kモニタもお手頃価格で買えるようになっているかもしれないですね。 Windows 8.1 以降で使える `SetProcessDpiAwareness` 関数をアプリの初期化処理時に呼ぶことで挙動を変えられるようなので、設定で `System DPI Awareness` もしくは `Per-Monitor DPI Awareness` のどちらにするかを変えられるようにするのが良いかもしれないと思いました。
修正ありがとうございます。mergeします。
マージ権限が無くてもレビューは出来るので、主に土日になると思いますがPRのレビューも行っていきますね。