-
Notifications
You must be signed in to change notification settings - Fork 163
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
表示スケールに合わせて拡大する処理を色々と追加 #1762
表示スケールに合わせて拡大する処理を色々と追加 #1762
Conversation
ミニマップのフォントサイズのデフォルト値を -1 から -2 に変更 ルーラーの高さ、ルーラーとテキストの隙間、行番号とテキストの隙間を表示スケールに合わせて拡大する処理を追加 文字の間隔と行の間隔を表示スケールに合わせて拡大する処理を追加
Kudos, SonarCloud Quality Gate passed! |
❌ Build sakura 1.0.3988 failed (commit 1bc3d3425b by @beru) |
この制限外します? Line 87 in 138ec8e
_WIN32_WINNTを_WIN32_WINNT_WIN7にしたままだと、 |
CIのビルドエラーに見えているものは、LeProcのインストール失敗によるものなのでスルーしてよいと思います。 |
定かでは無いんですが、サクラエディタの対応OSにWindows 8.1を今はまだ入れていたような気がします。検索してみたところWindows 8.1の延長サポートは2023年1月10日に終了となるようなので、それを過ぎたらさすがに切り捨ててWindows10以降に限定して良いと思います。 高DPI対応では
しかしなんかうまくコード書いてまとめないとHighDPI対応の為にWindowsAPIをそこらじゅうで呼び出しまくる事になってしまいますね。既にごちゃごちゃしてるのに輪をかけてとかいうと首を絞められるかも。。 |
自分も良く分かってなかったんですが、公式サイト(?)に Windows 10以降 と書いてありました。 なので、Windows 8.1対応は考慮不要なはずです。 |
記憶が正しければ文章( ただ時間が経過してもうみんなWindows 10かWindows 11(自分はまだ未使用)を使っているだろうし、Windows 8.1は切り捨てても良いんじゃないかとも思いますが、
の意見が強ければ今のままでしょうか…。 |
システムDPI対応で1回、PerMonitorV2対応で2回です。 現状ではシステムDPI対応も完了していなくって、 |
なるほど、それで2回という事だったんですね。 一足飛びに対応するか、2回に分けて対応するのかに特にこだわりはないです。Per-Monitor DPI対応をするとなると変更量が増えるので対応に時間は掛かりますね。 個人的にはWindows 8.1を切り捨てても構わないと思います。とはいえ |
動作確認して問題なければ入れていいんじゃないかと思います。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
表示確認はできないのでコメント付けるつもりなかったんですが、コードチェックしてみました。
根拠不明なベタ書き定数を1件、誤記と思われるDPI変換を2件見つけました。
妥当な理由があれば修正要求は取り下げます。
sakura_core/view/CRuler.cpp
Outdated
@@ -122,7 +123,7 @@ void CRuler::DrawRulerBg(CGraphics& gr) | |||
} | |||
if (m_hFont == NULL) { | |||
LOGFONT lf = {0}; | |||
lf.lfHeight = 1 - pCommon->m_sWindow.m_nRulerHeight; // 2002/05/13 ai | |||
lf.lfHeight = 1 - DpiScaleY(pCommon->m_sWindow.m_nRulerHeight); // 2002/05/13 ai |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lf.lfHeight = 1 - DpiScaleY(pCommon->m_sWindow.m_nRulerHeight); // 2002/05/13 ai | |
lf.lfHeight = DpiScaleY(1 - pCommon->m_sWindow.m_nRulerHeight); // 2002/05/13 ai |
じゃないですかね?
元のコードが 1 - n
としてる理由が謎ですが。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
元のコードが 1 - n
している理由は自分も分かっていません。どちらの記述が良いのかは後で動作確認してみます。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
お願いします。
LOGFONT.lfHeight
に負数を指定してCreateFontIndirectすると、指定した高さのフォントが使われる、という仕様があるはずです。正数を指定した場合は、指定した値に近似するサイズが使われる(つまり、指定したサイズと一致しないかもしれない)仕様です。
1 - n
はおそらく、
・指定したサイズより少し小さいフォント
を意味していると考えられます。
たぶん、2より小さい値が設定されることは想定してないっす。
なんか前に、ルーラーって消せなくていいんでしたっけ?というやりとりがあったようななかったような・・・。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
負数は文字の高さ、正数はセルの高さですね。
正数だとセル内の余白の分、文字の高さが小さくなります。
付けるつもりなかったのは、レビューですね・・・ |
数日前にVimのPerMonitorV2対応を行いました。 vim/vim@c81e9bf |
残1件です。
|
ステータス変わってないように見えました。 request changesで残1件です。 元が |
う、そういえば対応していませんでした。元の |
|
#1762 (comment) のberryzplusさんのコメントとtakataさんコメントに答えが書いてありそうですね。
2より小さい値というのは正の数だと1や0ですが、1だと0になって0だと-1になるのでサイズ的には逆転しそうですが指定されないだろうから問題ないという事ですね。了解しました。 |
2より小さい値が設定されないようにUI側でチェックが入っていました。 sakura/sakura_core/_main/global.h Line 101 in e67c8ce
定数 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
システムDPI対応として問題なさそうに思います。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GHAのSonarCloudビルドが失敗していますが、PRに起因する問題ではなさそうなのでスルーします。
✅ Build sakura 1.0.4097 completed (commit ae28b056ea by @beru) |
レビューありがとうございました。Mergeします。 |
を展開した記述と捉える事が出来そうです。 |
PR の目的
ディスプレイの表示スケールに合わせて見た目がスケールするようにする。
カテゴリ
PR の背景
PR のメリット
表示スケールに変更した際に見た目がスケールするので設定値を変更する必要がなくなる。
PR のデメリット (トレードオフとかあれば)
dot by dot のピクセル単位では設定出来なくなるので、表示スケールが大きい数値の時にピクセル単位で細かく調整する事が出来なくなります。
仕様・動作説明
変更前はディスプレイの表示スケールを掛けないピクセル単位でした。
PR の影響範囲
項目に関連する画面の見た目
テスト内容
様々な表示スケールで画面の見た目を確認
関連 issue, PR
参考資料